如果输入数字大于?如何禁用选择选项?

时间:2017-05-17 11:35:41

标签: javascript jquery

所以我有这个HTML:

<input id="numberInput" name="numberInput"/>

<select>
 <option>Some text</option>
 <option class="" id="disableThis">Some text 2</option>
 <option>Some text 3</option>
</select>

和Javascript代码:

$("#numberInput").on("change", function() {
var x = 20;
if ((Number("#numberInput")) > Number(x)) {
    var d = document.getElementById("disableThis");
    d.className = "hidden";
}
});

如果某个人在输入字段中输入的数字大于20,我会尝试禁用此特定的选择选项,但似乎无法弄明白该怎么做。

这是实时代码https://jsfiddle.net/qxqg32rk/

我该怎么做?

6 个答案:

答案 0 :(得分:0)

$("#numberInput").on("change", function() {
    var x = 20;
    var value = $(this).val();
    if (value > x) {
        $("#disableThis").attr("disabled","disabled")
    }else{
        $("#disableThis").removeAttr("disabled","disabled")
    }
});

答案 1 :(得分:0)

代码问题

  1. 分配“隐藏”类名不是禁用选择框的方式。您必须将disable属性设置为true。像这样document.getElementById('disableThis').disabled = true;

  2. Number("#numberInput")不会为您提供该输入框的值。您必须使用$("#numberInput").val()作为

  3. 工作fiddle

答案 2 :(得分:0)

$("#numberInput").on("change", function() {
var x = 20;
if ($(this).val() > Number(x)) {
    $('#disableThis').prop('disabled', 'disabled');
} else {
    $('#disableThis').prop('disabled', false);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="numberInput" name="numberInput"/>

<select>
 <option>Some text</option>
 <option class="" id="disableThis">Some text 2</option>
 <option>Some text 3</option>
</select>

答案 3 :(得分:0)

您需要使用.val()方法引用该值以获取值,并使用.addClass()方法将类添加到元素中:

$("#numberInput").on("keyup", function() {
  var x = 20;
  if (Number($("#numberInput").val()) > Number(x)) {
    $("#disableThis").addClass("hidden");
  }
});

<强>演示:

$("#numberInput").on("keyup", function() {
  var x = 20;
  if (Number($("#numberInput").val()) > Number(x)) {
    $("#disableThis").addClass("hidden");
  }
});
.hidden {
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="numberInput" name="numberInput" />

<select>
 <option>Some text</option>
 <option class="" id="disableThis">Some text 2</option>
 <option>Some text 3</option>
</select>

注意:

请注意,我在输入中使用了keyup ebvent,以便在下拉菜单中立即生效。

答案 4 :(得分:0)

您只需使用 - What do you want to do ? (help) // this is a printf move to position // this is a user input - Select the position to get // this is a printf 10 // this is a user input - New position is: 0 // this is a printf using the function ftell 属性

即可
attr

});

答案 5 :(得分:0)

要获得numberInput值,您应该使用val()函数。在if而不是添加类hiden,您还可以使用hide()函数

$("#numberInput").on("change", function() {
 
    var x = 20;
    if ($("#numberInput").val() > x) {
        $("#disableThis").hide();
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="numberInput" name="numberInput"/>

<select>
  <option>Some text</option>
  <option class="" id="disableThis">Some text 2</option>
  <option>Some text 3</option>
</select>