2010-03-16 210 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 
    }); 
} 
相關問題