2010-03-16 162 views
0

我想要做的就是检查文本框是否已被更改。如果没有,我想在按下提交时突出显示这些框。我怎么做?似乎很简单,但不知道为什么其他解决方案如此复杂jQuery的表单验证最简单的方法是什么?

+0

查看更新!并让我知道! – 2010-05-04 13:41:03

回答

4

大厦在皮姆的回答,您可以changed标志各关联文本字段使用jQuery的数据API。

// initially, assign changed to false for all text fields 
$("input:text").data("changed", false); 

// if any field changes, set its changed flag to true 
$("input:text").change(function() { 
    $(this).data("changed", true); 
} 

// finally on submission, get all text fields that did not 
// change by checking their "changed" property 
var unchangedItems = $("input:text").filter(function() { 
    return $(this).data("changed") === false; 
}); 
+0

方式更好,那么我的全球旗帜的想法。好的解决方案 – 2010-03-16 11:28:40

+0

请注意,使用javascript更改输入值并不会触发'changed'事件 – 2010-03-17 12:58:42

+0

@Andrew Bullock - 是的,但您可以放置​​$('fieldIChanged')。trigger(“change”);当你改变它的方式:)其中'fieldIChanged'是该项目的选择器(这个?) – 2010-03-17 13:06:32

2

您可以使用jQuery Validate插件。

+0

ooo!新版本! 1.7是jQuery 1.42兼容。 – 2010-03-17 15:38:36

1

Bassicly,你刚才说它从来没有被改变,当它cahnges,您设置一个标志说的是已经改变:

var changed = false; 
$('#textfield').change(function(){ 
    changed = true; 
}); 
if(changed){ 
    $('.textbox').each(function(){ 
     $(this).addClass('.highlighted'); 
     //or something like this, whatever you want to do to highlight them 
    }); 
} 
相关问题