我在这里有一个(未)选中单选按钮的奇怪问题。
我的代码:
function validate(el) {
if ($('#type_P').is(':checked') === true && (parseInt($('#voucher_price').val()) <= 0) || isNaN(parseInt($('#voucher_price').val()))) {
alert($('#type_P').is(':checked') === true);
$('#service_price').addClass('error');
$('#service_price').parent().addClass('error');
}
return false;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form onsubmit="return validate(this)">
P: <input type="radio" checked name="type" id="type_P" value="P">
S: <input type="radio" name="type" id="type_S" value="S">
<input id="voucher_price">
<input type=submit>
</form>
它当“type_S”被选中,而不是“type_P”返回警告我“假”。我的意思是不必显示警报。
为什么?如果if语句中存在相同条件,如何显示此警报?
正如所讨论的评论所说,方括号中存在问题。是的(expr1 && (expr2 || expr3))
,我有(expr1 && expr2 || expr3)
。这只是我的错字。感谢两位评论员。
没什么特别的,我只需要回答这个问题就可以将其从“未答复”列表中移开,以避免其他人在此问题上浪费时间。