Описание: Привязвает обработчик события "change" JavaScript или запускает это событие на элемент.
.change( handler(объектСобытия) )
.change( )
.change( [ данныеСобытия ], обработчик(объектСобытия)
Этот метод является сокращением для .bind('change', handler)
в первом варианте, и .trigger('change') во втором.
Событие change посылается элементу, когда его значение меняется.
Это событие ограниченно для элементов <input>, <textarea> и <select>.
Для полей выбора, флажков, радио-кнопок, это событие запускается сразу, когда пользователь делает выбор с помощью мышки, а для других типов элементов событие на элемент запускается когда элемент теряет фокус.
Рассмотрим, например, HTML:
<form>
<input class="target" type="text" value="Field 1" />
<select class="target">
<option value="option1" selected="selected">Option 1</option>
<option value="option2">Option 2</option>
</select>
</form>
<div id="other">
Trigger the handler
</div>
Обработчик события может быть связан с полем ввода и полем выбора:
$('.target').change(function() {
alert('Handler for .change() called.');
});
Теперь, когда выбран второй вариант из поля выбора, будет выдано предупреждение. Оно также отобразится, если мы изменим текст в поле, а затем щелкним мышкой в другом месте. Если поле теряет фокус без изменения содержания, событие не вызывается. Мы можем вызвать событие вручную, когда другой элемент нажат:
$('#other').click(function() {
$('.target').change();
});
После выполнения этого кода, нажатие на Trigger the handler также выдаст сообщение. Сообщение будет показано дважды, так как обработчик привязан к событию change обеих элементов формы.
Начиная с jQuery 1.4 событие change теперь распространяется, и работает одинаково во всех браузерах, и в Internet Explorer.
Примеры
Пример 1
Пример 1 - Полный код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" language="javascript">
$(document).ready(function(){
$("select").change(function () {
var str = "";
$("select option:selected").each(function () {
str += $(this).text() + " ";
});
$("div").text(str);
})
.change();
});
</script>
<style>
div { color:red; }
</style>
</head>
<body>
<select name="sweets" multiple="multiple">
<option>Chocolate</option>
<option selected="selected">Candy</option>
<option>Taffy</option>
<option selected="selected">Caramel</option>
<option>Fudge</option>
<option>Cookie</option>
</select>
<div></div>
</body>
</html>
Пример 2
Для добавления проверки текстовых элементов ввода попробуйте:$("input[type='text']").change( function() {
// check input ($(this).val()) for validity here
});

