Ответ 1
Этот код работал у меня:
$(function(){
$('input:radio').change(function(){
alert('changed');
});
});
У меня есть несколько радиостанций на моей странице, и я хочу что-то сделать, когда проверенное радио изменится, однако код не работает в IE:
$('input:radio').change(...);
И после googling, люди предлагают использовать клик. Но это не работает.
Это пример кода:
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript">
$('document').ready(
function(){
$('input:radio').click(
function(){
alert('changed');
}
);
}
);
</script>
</head>
<body>
<input type="radio" name="testGroup" id="test1" />test1<br/>
<input type="radio" name="testGroup" id="test2" />test2<br/>
<input type="radio" name="testGroup" id="test3" />test3</br>
</body>
</html>
Он также не работает в IE.
Итак, я хочу знать, что происходит?
Также я боюсь, если он перезапустит событие изменения, если я нажму на проверенную радио?
UPDATE:
Я не могу добавить комментарий, поэтому я отвечаю здесь.
Я использую IE8, и ссылка Furqan дает мне тоже не работает в IE8. Я не знаю, почему...
Этот код работал у меня:
$(function(){
$('input:radio').change(function(){
alert('changed');
});
});
Вы можете указать атрибут имени, как показано ниже:
$( 'input[name="testGroup"]:radio' ).change(
Работает для меня тоже, вот лучшее решение:
<form id="myForm">
<input type="radio" name="radioName" value="1" />one<br />
<input type="radio" name="radioName" value="2" />two
</form>
<script>
$('#myForm input[type=radio]').change(function() {
alert(this.value);
});
</script>
Вы должны убедиться, что вы инициализировали jquery
выше всех других импортных и javascript-функций. Потому что $
- это функция jquery
. Даже
$(function(){
<code>
});
не проверяет инициализацию jquery
или нет. Он гарантирует, что <code>
будет запущен только после инициализации всех javascripts.
Try
$(document).ready(
вместо
$('document').ready(
или вы можете использовать сокращенную форму
$(function(){
});
$( 'input[name="testGroup"]:radio' ).on('change', function(e) {
console.log(e.type);
return false;
});