我正在尝试达到条件,当输入的值大于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");
}
});
在输入值没有检查无线电的情况下被触发。 有人可以帮我吗?
谢谢。
答案 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')
)。
您还需要更改一些其他内容。
$("#age").val().length
上,而应在$("#age").val()
本身上。keyup
上的值,还需要检查无线电的更改(或复选框)。答案 2 :(得分:0)
尝试一下:
$("input").keyup(function () {
if ($("#age").val().length > 1 && $("input[name='education']").is(':checked')) {
$("#diploma").removeClass("disabled");
} else {
$("#diploma").addClass("disabled");
}
});