我想查找具有特定类的所有表单元素,并检查它们是否已被更改。 if语句完成它的工作,但我不知道如何纠正find thingy。这是正确的方向还是我错了?
$("input").find(".formWithMyClass").load(function() {
if (this.value !== this.defaultValue){
$(this).addClass("inactiveForm");
}
});
干杯!
答案 0 :(得分:2)
您可以编写自定义选择器...
(function($) {
$.expr[':'].defaultValue = function(obj) {
return obj.value === obj.defaultValue;
};
})(jQuery);
然后,您应该能够$('input:defaultValue')
获取input
属性设置为value
的所有defaultValue
个元素。
但是,如果要查找所有输入类型元素,可能需要扩展该自定义选择器。
我似乎无法找到获取select
元素原始值的方法(不是先设置它们)。他们的defaultValue
属性为undefined
,selectedIndex
可能是最后选择的值。
答案 1 :(得分:1)
$(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" />
。
答案 2 :(得分:0)
您还需要注意选择菜单等内容。 查看JQuery API中的.val(value)