使表单提交仅适用于特定提交

时间:2015-02-16 11:55:23

标签: javascript php

在PHP程序中,我有JS函数验证提交<form ...onsubmit='return isOK();'>。它运作正常。问题是我希望它只适用于特定的提交,而不是所有提交。在JS函数中是否有任何方法可以找出哪个提交被按下,或者某些PHP技巧

7 个答案:

答案 0 :(得分:2)

instead of onsubmit u can use onClick.

<input type="submit" onclick="return pressSubmit1()" value="submit1" />

<input type="submit" onclick="return pressSubmit2()" value="submit2" />

答案 1 :(得分:1)

<form action="action.php" method="post">
    ...
    <input name="submit" type="button" value="check me" onclick="submitform('check')" />
    <input name="submit" type="button" value="do not check me" onclick="submitform('not check')"/>
</form>

在javascript中:

 function submitform(check)
 {
    if(check=='check') checkfrom();

 }
PHP

中的

if($_POST['submit']=="check me")
 checkform();

答案 2 :(得分:0)

<form class="allowed" onsubmit='return isOK();'>
----

function isOK() {
    if($(this).hasClass('allowed')) {
        // Do stuff
    }
}

答案 3 :(得分:0)

您的问题不明确,您使用的是单个提交按钮还是不同的按钮。如果您正在使用不同的提交按钮,那么您可以根据提交按钮的ID进行检查。另一方面,如果是单个提交按钮,那么它取决于提交或不提交的条件

答案 4 :(得分:0)

您编写一些正在使用的HTML和Java Script代码会更好。因此,很容易纠正的错误是你在代码片段中的某个地方。

答案 5 :(得分:0)

我们可以使用PHP检查单击了哪个提交按钮。 在表单提交对应的PHP页面中,写入

if(extract($ _ POST)&amp;&amp; isset($ submitbtn1)){

// some validation for first submit button

} elseif(提取($ _ POST)&amp;&amp; isset($ submitbtn2)){

// some validation for second submit button

}

注意:我们可以在提取函数中使用$后跟提交按钮名称。即。 $ submitbtn1与$ _POST相同[&#39; submitbtn1&#39;]

答案 6 :(得分:0)

是的,不同的onclick看起来很好,如接受的答案中所述。但是在事件处理程序中你应该拥有 代码如下。注意preventDefault。 此外,由于提交是提交表单的A按钮。您可以使用按钮类型而不是提交类型,然后就不需要preventDefault。以下是代码http://jsbin.com/wikose/4/

的链接
  function testlogin(){
      event.preventDefault();
      var test = 'not validated';
      if(test === "validated")
      alert("not valid login");
      else
        $('form').submit();
      return false;
    }