无输入任何内容时无法检测输入框

时间:2017-09-18 02:21:03

标签: javascript jquery html inputbox

我有以下表格和输入框。但是,当输入框中没有任何内容时,javascript不会执行。我需要检测是否有人点击“提交”而没有填写表格。我已经尝试了很多我在SO上找到的东西,但没有一个有效。当有输入值时,一切都可以完美地执行js。但是,当没有任何内容时,console.log(bidz)不会产生任何内容,并且看起来好像脚本退出了。根据我的阅读,我理解输入框不存在没有值。但后来我试着说,如果它不存在,那么一些东西,但这也没有用。

也许这与我给它一个占位符值“输入东西?”的事实有关。

 <form action="" method="post">
        <div id="<?php echo $this->item['id']; ?>">
            <div class="ab">
                <label for="ab_input"><?php echo $this->translate('To get the auction started, you must enter a starting bid.'); ?></label>
            <span class="auction_bid_container">
                <input id="ab_input" type="text" maxlength="12"
                       class="middle nmr event-clear-focus"
                       name="bidz" value="Enter something" />
                <input id="updateBidButton" type="submit"
                       class="button grey-button num-items-button"
                       name="bidz" 
                       value="<?php echo $this->translate('submit'); ?>"/>
            </span>
            </div>
        </div>
    </form>
    <div class="clear mb20"></div>

这是我的js函数。我尝试了各种各样的东西,但如果没有价值,“this.value”会出现错误:

    $('input[name="bid_amount"]').live('change', function () {
        var bidz = this.value;

        console.log(bidz);

        $.ajax({
            type: 'post',
            url: "?module=is&controller=index&action=syy",
            dataType: "text",
            data: 'bid=' + bid_amount + '&id=' + id,
            beforeSend: function () {
                $('.ab').animate({
                    'backgroundColor': '#ffdead'
                }, 400);
            },
            success: function (result) {
                if (result == 'ok') {
                    console.log(bid_amount);

                    $('.ab').animate({
                        'backgroundColor': '#A3D1A3'
                    }, 300);
                } else {
                    $('.ab').animate({
                        'backgroundColor': '#FFBFBF'
                    }, 300);
                }
            }
        });
    });

1 个答案:

答案 0 :(得分:0)

您正在以任何方式提交表单,这就是原因!所以,你要做的就是停止提交表单。怎么样?

您可以将onsubmit=" return false; "添加到表单

<form action="" method="post" onsubmit=" return false; ">
</form>

submit.addEventListener("submit", form, function(){
    e.preventDefault(); /* This will prevent the form from being sent until you explicitly send it. */
});

如果您通过ajax发送表单,则无需提交实际表单(意为form.submit()