簡體   English   中英

JavaScript驗證后表單未提交

[英]Form not submitting when JavaScript validated

我有一個帶有經過驗證的下拉列表的表單,驗證工作正常,但是如果用戶選擇默認以外的任何選項,表單將不會提交。

我以易於閱讀的格式創建了當前代碼的jsfiddle

為什么我的表單不提交?

JavaScript的

$('#btncheck').click(function () {
    if ($("#mySelect ")[0].selectedIndex <= 0) {
        alert("Please select a tank from the menu!");
        return false;
    } else {
        return true;
        form.submit();
    }
});

return后的任何事情都不會觸發:

return true;
form.submit(); 

這是因為在form.submit();之上有一個return true語句form.submit(); 您需要切換這些順序。

$('#btncheck').click(function(){
    if ($("#mySelect")[0].selectedIndex <= 0) {
         alert("Please select a tank from the menu!");
         return false;
    }
    form.submit(); 
    return true;
});

(我還整理了一些代碼。)


我已經編輯了您的JSFiddle,並提出了一個可行的示例。 http://jsfiddle.net/36JZL/44/您可以看到,當彈出警告框時,已到達提交表單的代碼部分。


為了回答您的最新評論,我更新了JSFiddle。 http://jsfiddle.net/36JZL/46/ 這會更改下拉菜單的背景顏色,並在其下方給出錯誤消息。

   $(document).ready(function() {
$('#btncheck').click(function(){
     if ($("#mySelect ")[0].selectedIndex <= 0) {
         alert("Please select a tank from the menu!");
                return false;
                }
    else {
        //return true;
        $('form').submit(); 
    }
});
});

ps在表單中添加動作標簽(例如action ='server-side.php'),否則表單將被提交/處理到/在同一頁面上(也許您想要,不知道)和方法(我猜您沒有)不需要默認-GET)

返回是任何函數的終點!

返回后放置的任何內容均不會執行。

我建議您使用帶有斷點的逐步調試器,這是chrome開發工具的指南https://developers.google.com/chrome-developer-tools/docs/javascript-debugging

暫無
暫無

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

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