2016-12-06 169 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> 
内的标志变量找到了一种方法