我有一个选择下拉列表:
<select class="selector">
<option value="Yes">Enabled</option>
<option value="No">Disabled</option>
</select>
输入:
<input type="text" class="tester" value="test">
我想要做的是在select选项更改时切换输入上的disabled属性。因此,如果启用了选项,则应启用输入,反之亦然。
按照jQuery change()的说明,我试图让它工作,但它只是不想。不知道我在这里做错了什么,因为它似乎很简单:
$( ".selector" )
.change(function () {
var selector = $("selector").val();
if (selector == 'No') {
$('.tester').prop( "disabled", true );
} else {
$('.tester').prop( "disabled", false );
}
})
.change();
在我的逻辑中,有人能指出我在哪里出错吗?提前谢谢!
答案 0 :(得分:2)
读取.val()时的选择器不正确,请尝试此
fluidRow
如果它仍然无法正常工作,请在浏览器中调用“var selector”分配,或提醒值以查看您正在使用的内容。
答案 1 :(得分:1)
您在回调函数中使用错误的选择器:
$( ".selector" )
.change(function () {
var selector = $('selector').val(); // The problem is here
if (selector == 'No') {
$('.tester').prop( "disabled", true );
} else {
$('.tester').prop( "disabled", false );
}
})
.change();
尝试将其更改为:
$( ".selector" )
.change(function () {
var selector = $(this).val(); // Leverages "this" instead of repeating the selector
if (selector == 'No') {
$('.tester').prop( "disabled", true );
} else {
$('.tester').prop( "disabled", false );
}
})
.change();
答案 2 :(得分:1)
您在其中一个选择器中遇到问题,您正在使用selector
,因此缺少.
。将其更改为.selector
,$(this)
也可以。
$( ".selector" )
.change(function () {
var selector = $(".selector").val(); //HERE IS THE CHANGE. ALSO: $(this)....
if (selector == 'No') {
$('.tester').prop( "disabled", true );
} else {
$('.tester').prop( "disabled", false );
}
})
.change();
&#13;
答案 3 :(得分:0)
您应该使用属性if (end < start)
return (NULL);
而不是属性。
disabled
在这里:https://jsfiddle.net/517s881e/4/
此外,您的$( ".selector" )
.change(function () {
var selector = $(".selector").val();
if (selector == 'No') {
$('.tester').attr( "disabled", "disabled" );
} else {
$('.tester').removeAttr( "disabled");
}
})
.change();
选择器出现问题。你应该在可以的时候使用它,这样代码更容易理解
selector