Warm tip: This article is reproduced from serverfault.com, please click

javascript-无线电检查的验证失败

(javascript - Radio checked validation failed)

发布于 2020-10-16 12:35:14

我在这里有一个(未)选中单选按钮的奇怪问题。

我的代码:

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语句中存在相同条件,如何显示此警报?

Questioner
pavel
Viewed
0
pavel 2020-11-28 22:10:53

正如所讨论的评论所说,方括号中存在问题。是的(expr1 && (expr2 || expr3)),我有(expr1 && expr2 || expr3)这只是我的错字。感谢两位评论员。

没什么特别的,我只需要回答这个问题就可以将其从“未答复”列表中移开,以避免其他人在此问题上浪费时间。