2014-02-07 80 views
1

我有一個表單,我想驗證客戶端。它是一個小表單,所以我嘗試着自己做這個,而不使用任何插件。但是,如果表單驗證,我希望它無奈地取代。例如防止表單提交驗證並正常提交

$(documet).ready(function(){ 
    $(".myform").on('submit', function (event){ 
     event.preventDefault(); //prevent it from submitting 
     validate = validateForm(); //function to validate fields 
     if (validate){ 
      this.submit();//if everything is ok submit it normally 
     } 
    }) 
}); 

但表單不會提交自己。我相信它與event.preventDefault()有關。在撤銷preventDefault()之後調用submit()方法嗎?我應該把防止默認設置爲

if (!validate){ 
    event.preventDefault(); 
}else{ 
    this.submit(); 
} 

這樣做的方法是什麼?

回答

2

剛剛返回true提交表單

if (!validate){ 
    event.preventDefault(); 
}else{ 
    return true; 
} 

或使用$(this).submit();

或只是如果條件不留必要的其他

if (!validate){ 
    event.preventDefault(); 
} 
+0

這不起作用,我把preventDefault()裏面,如果仍然不會提交表單(不張貼) – Apostolos

+1

@Apostolos:檢查函數validateForm()正確返回 –

+0

true。我必須檢查validateForm()。這個提交創建了另一個問題...它進入一個循環:) – Apostolos

0

我們可以使用類型= 「按鈕」,而不是類型=「提交」如下

<input type="button" onclick="myFunction()" value="Submit form"> 

function myFunction() 
{ 
validate = validateForm(); 
document.getElementById("myForm").submit(); 
} 
+0

但這不會阻止我的表單提交 – Apostolos

+0

使用類型按鈕並返回false.function myFunction() validate = validateForm(); 返回false; }檢查validform函數,你可以添加返回false;在函數結束時。 – raj