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