如果输入具有值并且选中了单选按钮,则从锚定标记中删除禁用的类

时间:2018-07-25 12:15:16

标签: javascript jquery html

我正在尝试达到条件,当输入的值大于1并选中单选按钮,然后从锚点中删除禁用的类。

这是我的代码

<input name="age" id="age" type="text">
<input name="education" type="radio" value="univeristy">

<a href="#" id="diploma" class="btn disabled">Calculate</a>


    $("input").keyup(function () {
        if ($("#age").val().length > 1  && $('input[name=education]:checked')) {

            $("#diploma").removeClass("disabled");

        } else {
             $("#diploma").addClass("disabled");
        }
      });

在输入值没有检查无线电的情况下被触发。 有人可以帮我吗?

谢谢。

3 个答案:

答案 0 :(得分:0)

使用prop('checked')检查收音机,请参考下面的代码

$( document ).ready(function() {
   $("input").keyup(function () {
        if ($("#age").val().length > 1 && $("input[name='education'][value='univeristy']").prop("checked")) {

            $("#diploma").removeClass("disabled");
            console.log("Removed class 'disabled'");

        } else {
             $("#diploma").addClass("disabled");
             console.log("Added class 'disabled'");
        }
      });
  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
<input name="age" id="age" type="text">
<input name="education" type="radio" value="univeristy">

<a href="#" id="diploma" class="btn disabled">Calculate</a>
</body>

运行此代码,然后查看控制台日志。

答案 1 :(得分:0)

使用:checked is fine。但是它不返回布尔值。您需要检查它是否返回一个元素。 $(':prop').length > 0(或使用prop('checked'))。 您还需要更改一些其他内容。

  1. 该条件不应在$("#age").val().length上,而应在$("#age").val()本身上。
  2. 使用复选框,而不是单选按钮。单选按钮用于从其他选项中选择一个选项,而不是设置true / false。
  3. 您需要检查输入keyup上的值,还需要检查无线电的更改(或复选框)。

答案 2 :(得分:0)

尝试一下:

$("input").keyup(function () {
    if ($("#age").val().length > 1  && $("input[name='education']").is(':checked')) {

        $("#diploma").removeClass("disabled");

    } else {
         $("#diploma").addClass("disabled");
    }
  });