如果输入数字大于隐藏的输入,则启用/禁用提交按钮

时间:2018-06-29 11:02:25

标签: jquery disabled-input submit-button html5-input-number

我正在处理一个允许用户竞标的表格。表单运行良好,但如果出价高于用户余额,我想禁用“提交”按钮。

示例:如果用户余额为20,则用户出价不能超过其余额。

我尝试了以下代码:

<form class="auction_form cart" method="post" enctype="multipart/form-data" data-product_id="906">


        <input type="hidden" name="bid" value="906">    

            <div class="quantity buttons_added">
                                <input type="hidden" id="balance" value="5">

                <input type="number" id="bid_value" name="bid_value" data-auction-id="906" size="7" title="bid" class="input-text qty  bid text left">

            </div>  
        <button type="submit" class="bid_button button alt">Faire une offre</button>

        <input type="hidden" name="place-bid" value="906">
        <input type="hidden" name="product_id" value="906">
                        <input type="hidden" name="user_id" value="1">

                </form>

<script>
$(document).on('input', '#bid_value', function(){
                    if ($(this).val() >= $('#balance').val() ) {
                        $('.bid_button').prop('disabled', true);
                    } else {
                        $('.bid_button').prop('disabled', false);
                    }
                });
</script>

似乎工作正常,但在那种情况下,按钮从10开始保持启用状态。

我不知道我错过了什么,你能帮我吗?!

谢谢

1 个答案:

答案 0 :(得分:1)

因为您期望使用10 > 2,但实际上您正在比较返回false的"10" > "2"。将它们解析为整数,然后进行比较。

var balance = parseInt($('#balance').val());
var bid = parseInt($(this).val());
if ( bid >= balance ) {
    //...