Я знаю, как проверить, один текстовое поле изменено, но как насчет, если любое изменилось? Любые идеи?Если текстовое поле на странице изменено, функция звонка
ответ
С JQuery:
$("input[type=text]").change(function() {
// put your code here
});
EDIT:
Если вы новичок в jQuery или не знают об этом, это основа JavaScript. Нажмите here, чтобы узнать о его функции change()
.
делает .change() также распознает, если вы вставляете текст с помощью щелчка правой кнопкой мыши? –
@EvilP Я так считаю. Я просто протестировал его здесь, и это сработало: http://jsfiddle.net/uBqx7/ –
Поскольку OP не упоминал jQuery или тег с jQuery, вы должны хотя бы предоставить ссылку на сайт jQuery и, надеюсь, предоставить не-jQuery ответ. –
Вы можете использовать некоторые jQuery.
Укажите класс текстового поля, например. class="onchange"
затем добавить некоторые JQuery
$(function(){
$('.onchange').change(function(){
// your code in here.
});
});
Таким образом, любое текстовое поле с классом onchange
поднимет событие JQuery change
.
следующий код добавит прослушиватели событий к всем входным тегам на странице с типом, равным «text».
var textboxes = document.getElementsByTagName("input");
for(var i = 0; i < textboxes.length; i++) {
if(textboxes[i].type == "text") {
textboxes[i].type.onchange = function() {alert("changed");};
}
}
спасибо, что не используете jQuery. –
Я бы предложил использовать 'onchange', а не' onclick', потому что 'onclick' предупреждал бы * до того, как * было сделано какое-либо изменение, и не будет проверять, было ли сделано изменение * после события click. –
sry, моя ошибка; Я случайно написал onclick – Tom
Loop over document.getElemenetsByTagName("input")
. Для каждого элемента убедитесь, что type == "text" и, если да, присоедините прослушиватель событий.
JQuery делает это в строке: $("input[type=text]").on("change", function() { ... })
Если вы хотите сделать это для текстовых полей, созданных динамически после времени загрузки, используйте $("input[type=text]").live("change", function() { ... })
Как правило, у вас есть все текстовые поля в одном DIV. Используйте event bubbling:
// Add an event handler on your whole div
document.getElementById('div-with-your-checkboxes').onchange = function(e) {
// Cross browser check
var evt = e || window.event
// Get the element that triggered the event
var target = evt.target || evt.srcElement
// Check if it is an INPUT element
if (target.tagName === 'INPUT') {
// Your code in here.
}
}
Таким образом, вы добавить только одно события, которое будет проверять каждые onchange
события в ваших делах. Просто проверьте, и все готово.
Это более эффективный способ, чем добавление обработчика событий для каждого элемента input
.
PS: как JQuery будет выглядеть так:
$('#div-with-your-checkboxes').change(function(e) {
if ($(e.target).tagName === 'INPUT') {
// Your code in here.
}
})
Как вы можете видеть, JQuery на самом деле не нужны для этой простой задачи :-).
, который использует id 'div' -.- – Raynos
Просто для примера, обычный! Но я отредактировал для вас :) –
Вы пробовали что-нибудь? – talnicolas
пытался использовать jquery для этого? –
использовать цикл foreach – Brian