2012-07-31 57 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") { 

也注意到,比较你应该使用==运营商,目前正在设置的值。