2010-05-23 54 views
5

我有这个传统的提交按钮,提交表单是这样的:如何检查表单是否通过javascript提交?

<form method="post" id="form_submit"> 
... 
<input class="button" type="submit" name="Submit" value="Submit"> 
</form> 

我检查是否正在使用此点击提交按钮:

if(isset($_POST['Submit'])){ 
    //update DB 
} 

现在我有一个使用jquery提交链接:

<a href="#" onclick="publish(); return false;">Submit</a> 

JS代码:

$("#form_submit").submit(); 

因为我使用javascript提交表单,因此在这里使用if(isset($_POST['Submit']))的替代方法是什么?

+0

是否经由提交AJAX /一些插件,或者你想知道'.submit()'被调用?如果您通过javascript提交表单,否则将出现的按钮将不在发布的数据中。 – 2010-05-23 12:02:20

+0

我正在开发Facebook应用程序,并且在调用.submit()之前调用FB弹出窗口,感谢大家的帮助,Sarfraz正确地解决了这个问题。隐藏的输入是一个不错的选择:) – SteD 2010-05-23 12:08:32

回答

5

如果我理解正确的话,试试这个:

if ($_SERVER['REQUEST_METHOD'] === 'POST') 
{ 
// your code......... 
} 
+0

+1不错,简单。 – 2010-05-23 12:07:14

+0

谢谢你!这正是我需要的。 – SteD 2010-05-23 12:09:44

+0

@SteD:不客气:) – Sarfraz 2010-05-23 12:11:56

0

最好的解决办法是“不要做”。如果你想提交一个表单,然后使用提交按钮(不要把它作为点击超链接到页面顶部的副作用)。任何你想运行的JavaScript都可以在表单的submit事件中处理。

如果您确实想将其作为副作用,请检查是否存在您知道将设置的其他字段。如果你喜欢,你可以添加一个隐藏字段,以确保有一个给定的名称/值组合。

1

如果我正确理解您的问题,您可以简单地将输入类型更改为隐藏。

<form method="post" id="form_submit"> 
... 
<input type="hidden" name="Submit"> 
</form> 

$ _POST ['Submit']变量将被定义。

4

你应该隐藏的输入<input type="hidden" name="formsubmit" value="yes" />添加到总是会得到提交表单,再检查所代替按钮(仅在点击它被提交...