2013-03-15 46 views
0

我想阻止用戶提交表單中的數據,但是當我使用JavaScript對其進行測試時,它不會返回true。阻止用戶提交表單中的數據

我用,我設定的提交按鈕的類型,而不是type="button"type="submit"方法:<input type="button" name="envoyer" onclick="valider(this.form)">

,然後我用這個JavaScript腳本:

function valider(formulaire) 
     { 
      if(//my test) 
      { 
       formulaire.envoyer.type = "submit"; 
       formulaire.envoyer.submit(); 
       return true; 
      } 

      return false; 
     } 

是否有任何其他方法離開提交按鈕而不將其類型更改爲按鈕?

+0

你使用的是Jquery嗎? – Vitthal 2013-03-15 18:26:10

回答

1

在普通的JavaScript

您可以使用函數的返回值,以防止表單提交

<form name="myForm" onsubmit="return validateMyForm();"> 

和功能類似

<script type="text/javascript"> 
function validateMyForm() 
{ 
    if(check if your conditions are not satisfying) 
    { 
    alert("validation failed false"); 
    returnToPreviousPage(); 
    return false; 
    } 

    alert("validations passed"); 
    return true; 
} 
</script> 

在jQuery中

$('#form').submit(function (evt) { 
    evt.preventDefault(); 
    window.history.back(); 
}); 

在道場

dojo.connect(form, "onsubmit", function(evt) { 
    evt.preventDefault(); 
    window.history.back(); 
}); 
0

只需將該函數綁定到窗體的提交事件即可。你並不需要改變輸入類型:

myForm.submit = function valider(formulaire) 
     { 
      if(//my test) 
      { 
       formulaire.envoyer.type = "submit"; 
       formulaire.envoyer.submit(); 
       return true; 
      } 

      return false; 
     } 
0

爲什麼要改變按鈕的類型?

只要做onclick="return valider(this.form)"。返回錯誤將阻止提交。