Селектор jQuery, сравнивающий атрибуты элемента (и / или свойства) между ними - PullRequest
0 голосов
/ 03 декабря 2011

Все начинается с моего предыдущего вопроса : с помощью jQuery можно сравнить два атрибута в селекторе?Я имею в виду что-то вроде:

$('element[atribute1!=attribute2]')

или, в практическом примере:

$('input[name!=id]')

В моем случае мне нужно было бы получить, сколько полей ввода не было изменено вHTML-форма, используемая для редактирования чего-либо, я пытался заставить этот код работать:

if($('input[DefaultValue!=input.value]').lenght==0){...}

А как насчет этого?Должно возвращаться количество измененных полей (если я получу 0, я остановлю отправку формы, покажу предупреждающее сообщение и вернусь без обновления)

Спасибо за вашу помощь.

Ответы [ 2 ]

4 голосов
/ 03 декабря 2011

Нет.Если вы посмотрите документацию jQuery, то увидите, что такого селектора нет.

Также defaultValue - это свойство, а не атрибут.

Вы можете сделать это:

var changed = $('input').filter(function() {
    return this.value !== this.defaultValue;
});
1 голос
/ 03 декабря 2011

Вы можете использовать функцию jQuery filter () , например:

var different = $('input').filter(function()
{
    return $(this).attr('data-default-value') != $(this).val();   
});

Затем вы можете проверить different.length > 0.

Вот полный рабочий пример: http://jsfiddle.net/us47d/

...