2016-12-06 173 views
0

無論何時提交驗證輸入的表單並基於該表單返回true或false,都需要調用validation()函數。但是基於兩個提交按鈕,有兩個驗證()函數。下面是一個例子在點擊提交按鈕時提交

<form name="abc" id="abc" method="post" onsubmit="return validate()"> 
    <button type="submit" id="save">Save</button> 
    <button type="submit" id="edit">Edit</button> 
</form> 
<script type = "text/javascript"> 
    document.getElementById("save").onclick = function() { 
     validateSave(); 
    } 
    document.getElementById("edit").onclick = function() { 
     validateEdit(); 
    } 
    function validateSave(){ 
      //do validation 
    } 
    function validateEdit(){ 
      //do validation 
    } 
    function validate(){ 
      //return true or false based on the validation 
    } 
</script> 

所以基本上我想用的onsubmit =「返回的validate()天氣導航到下一個頁面或保持在同一頁面,因此如何使用的onsubmit =」返回驗證()以及基於點擊按鈕的相應驗證。

任何線索/提示將不勝感激。 感謝

+1

[this]可能的重複(http://stackoverflow.com/questions/3577469/form-onsubmit-determine-which-submit-button-was-pressed) – xitter

+0

它是相似的,但不完全是。我找到了解決這個問題的方法。將張貼它 – user3214392

回答

1

做這樣的事情:

HTML:

<form name="abc" id="abc" method="post"> 
    <button type="submit" id="save" onclick="validate(event)">Save</button> 
    <button type="submit" id="edit" onclick="validate(event)">Edit</button> 
</form> 

JS:

function validateSave(){ 
     console.log("save"); 
     return false; 
} 
function validateEdit(){ 
     console.log("edit"); 
     return false; 
} 
function validate(event){ 
     event.preventDefault(); 
     event.stopPropagation(); 
     var callerId = event.target.id; 
     var formElement = document.getElementById("abc"); 
     if (callerId === "Save") { 
      formElement.onsubmit = validateSave(); // Or other value/function 
     } 
     else { 
      formElement.onsubmit = validateEdit(); // Or other value/function 
     } 
     formElement.submit(); 
} 
0

我通過聲明JavaScript部分

<form name="abc" id="abc" method="post" onsubmit="return validate()"> 
    <button type="submit" id="save">Save</button> 
    <button type="submit" id="edit">Edit</button> 
</form> 
<script type = "text/javascript"> 
    var flag=""; 
    document.getElementById("save").onclick = function() { 
     flag="Save"; 
    } 
    document.getElementById("edit").onclick = function() { 
     flag="Edit"; 
    } 
    function validateSave(){ 
     //do validation 
    } 
    function validateEdit(){ 
     //do validation 
    } 
    function validate(){ 
     if(flag == "Save"){ 
      if(validateSave()){ 
       return true; 
      } 
      else{ 
       return false; 
      } 
     } 
     if(flag == "Edit"){ 
      if(validateEdit()){ 
       return true; 
      } 
      else{ 
       return false; 
      } 
     }    
     } 
</script> 
內的標誌變量找到了一種方法