2012-07-31 56 views
1

我正在嘗試重置部分中的字段(選擇和文本框)。這是我到目前爲止:使用jQuery重置字段

var $inputs = $('#StudentTable :select'); 
$inputs.each(function() { 
    if ($(this).name = "TeachingAsstSelect") { 
    $('select[name="TeachingAsstSelect"]').each(function() { 
     $(this).text(""); 
    }) 
    } 
    else { 
    $(this).val("Select"); 
    } 
}); 

這裏「TeachingAsstSelect」正在被清除,但其他選擇未被重置。我錯過了什麼嗎?更重要的是,我是否正確地做了這件事?

+0

這對我們來說也是非常有用的。也許你可以在jsfiddle.net上發佈相關的部分? – 2012-07-31 16:51:22

回答

1

如果您嘗試測試字符串是否相等,則應使用=====。看到這裏更多的形式:Which equals operator (== vs ===) should be used in JavaScript comparisons?

此外,正如@Raminson建議,請嘗試使用attr()方法。

if ($(this).attr('name') == "TeachingAsstSelect") { 

或者更好的是,嵌套.each()兩次一樣,可能不執行,以及其他解決方案。

我還注意到,您正在測試您的if條件中的名稱,然後使用jquery選擇器再次匹配[name="TeachingAsstSelect"]。那麼簡化如下:

var $teachingAsstInputs = $('#StudentTable :select[name="TeachingAsstSelect"]'); 
$($teachingAsstInputs).text(""); 

var $otherInputs = $('#StudentTable :select').not('[name="TeachingAsstSelect"]'); 
$($otherInputs).val("Select"); 
1

對於jQuery對象,您應該使用attr()方法,name是DOM元素屬性之一。

更改此:

if ($(this).name = "TeachingAsstSelect") { 

到:

if ($(this).attr('name') == "TeachingAsstSelect") { 

也注意到,比較你應該使用==運營商,目前正在設置的值。