使用jQuery根据选择的选项更改来切换要禁用的输入?

时间:2015-10-29 20:53:41

标签: jquery select input onchange

我有一个选择下拉列表:

<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();

在我的逻辑中,有人能指出我在哪里出错吗?提前谢谢!

A fiddle is available here

4 个答案:

答案 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();

https://jsfiddle.net/517s881e/6/

答案 2 :(得分:1)

您在其中一个选择器中遇到问题,您正在使用selector,因此缺少.。将其更改为.selector$(this)也可以。

&#13;
&#13;
$( ".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;
&#13;
&#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

像这样:https://jsfiddle.net/517s881e/5/