簡體   English   中英

為什么我的表單在我不想要時提交?

[英]Why is my form submitting when I don't want it to?

我希望我的表單只在填寫字段時才提交。 無論下面submit函數的結果如何,它目前都在submit

$("#findmusicians").submit(function(e)
{
    if ($('#inputName').val() && $('#inputEmail').val() && $('#inputInstrument').val() && $('#inputFee').val() && $('#message').val() != '')
    {
        alert('success');
    }
    else
    {
        alert('fill in all fields');
    }
});

還有什么可以觸發它?

這是表格:

<form class="form-horizontal" role="form" id="findmusicians">
        <div class="form-group">
            <label for="inputName" class="col-sm-3 control-label">* Name</label>
        <div class="col-md-7">
            <input type="text" name="inputName" class="form-control required" minlength="1" id="inputName">
            <div id="hidden"></div>
        </div>
        </div>
        <div class="form-group">
            <label for="inputEmail" class="col-sm-3 control-label">* Email</label>
        <div class="col-md-7">
            <input type="email" name="inputEmail" class="form-control" id="inputEmail">
        </div>
        </div>
    <div class="form-group">
        <label for="inputPhone" class="col-sm-3 control-label">Telephone</label>
        <div class="col-md-7">
            <input type="text" name="inputTelephone" class="form-control" id="inputTelephone">
        </div>
    </div>
    <div class="form-group">
        <label for="inputInstrument" class="col-sm-3 control-label">* Instrument(s)</label>
        <div class="col-md-7">
            <input type="text" name="inputInstrument" class="form-control" id="inputInstrument">
        </div>
    </div>
    <div class="form-group">
            <label for="inputFee" class="col-sm-3 control-label">* Fee</label>
            <div class="col-md-7">
                <input type="text" name="inputFee" class="form-control" id="inputFee">
            </div>
        </div>
    <div class="form-group">
        <label for="message" class="col-sm-3 control-label">* Message</label>
        <div class="col-md-9">
            <textarea name="message" id="message" class="form-control" rows="3" style="height: 200px"></textarea>
            <span class="help-block" style="text-align: left;">Please include as much information as possible including repertoire, rehearsal/performance times and venues.</span>
        </div>
    </div>
    <div class="form-group">
        <div class="col-md-3 col-md-offset-3">
            <button id="findmusicians-submit" type="submit" class="btn btn-success">Submit request</button>
        </div>
    </div>
    <div class="col-md-9 col-md-offset-3" style="text-align: left; padding-left: 5px">
        <span id="result" class="text-success"></span>
    </div>
</form>

說明

目前,該事件從內冒泡 .submit回調,基本上什么發生的是默認提交程序仍然被解雇。

您可以通過從回調中調用e.preventDefault ()來防止這種情況,以確保您的事件處理程序是最后一個接收事件。


修改后的SNIPPET

$("#findmusicians").submit(function(e)
{
    if ($('#inputName').val() && $('#inputEmail').val() && $('#inputInstrument').val() && $('#inputFee').val() && $('#message').val() != '')
    {
        alert('success');
    }
    else
    {
        alert('fill in all fields');
        e.preventDefault () // stop the event
    }
});

alert('fill in all fields'); 你必須調用preventDafault()來停止表單提交事件或者只是把return false; alert('fill in all fields');alert('fill in all fields'); 停止表單提交:

$("#findmusicians").submit(function(e)
{
    if ($('#inputName').val() && $('#inputEmail').val() && $('#inputInstrument').val() && $('#inputFee').val() && $('#message').val() != '')
    {
        alert('success');
    }
    else
    {
        alert('fill in all fields');
        e.preventDefault();
    }
});

嘗試添加e.preventDefault()以防止表單提交。

如果要檢查空字段,為什么不使用required

<form class="form-horizontal" role="form" id="findmusicians">
    <div class="form-group">
       <label for="inputName" class="col-sm-3 control-label">* Name</label>
       <div class="col-md-7">
          <input type="text" name="inputName" required>
       </div>  
    </div>
    <button type="submit">Submit</button>
</form>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM