Как я могу найти элементы ввода, которые не были изменены в jQuery? - PullRequest
1 голос
/ 25 ноября 2010

Я хочу найти все элементы формы с определенным классом и проверить, были ли они изменены или нет. Оператор if выполняет свою работу, но я понятия не имею, исправить ошибку find. Это в правильном направлении, или я все неправильно понял?

$("input").find(".formWithMyClass").load(function() {
   if (this.value !== this.defaultValue){
       $(this).addClass("inactiveForm");
   }
 });

Ура! * * 1004

Ответы [ 3 ]

2 голосов
/ 25 ноября 2010

Вы можете написать собственный селектор ...

(function($) {
    $.expr[':'].defaultValue = function(obj) {
       return obj.value === obj.defaultValue;
    };
})(jQuery);

Тогда вы сможете выполнить $('input:defaultValue'), чтобы получить все input элементы, для которых их свойство value установлено в defaultValue.

Однако, если вы хотите найти все элементы входного типа, вы можете расширить этот пользовательский селектор.

Кажется, я не могу найти способ получить исходные значения select элемента (не без предварительной установки их в первую очередь). Их свойство defaultValue равно undefined, а selectedIndex может быть последним выбранным значением.

1 голос
/ 25 ноября 2010
$(function() {
    $('form.formWithMyClass input').each(function() {
        if (this.value !== this.defaultValue) {
            $(this).closest('form').addClass("inactiveForm");
        }
    });
});

Если у вас есть <form class="formWithMyClass"> с <input /> с.

$(function() {
    $('input.formWithMyClass').each(function() {
        if (this.value !== this.defaultValue) {
            $(this).closest('form').addClass("inactiveForm");
        }
    });
});

Если у вас есть <form> с <input class="formWithMyClass" /> с.

0 голосов
/ 25 ноября 2010

Вам также необходимо знать о таких вещах, как выбор меню и т. Д. Посмотрите на .val (значение) в JQuery API

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...