如何在提交时模拟表单中的操作?

时间:2010-09-05 02:27:13

标签: javascript jquery ajax forms submit

首先:始终是同一个动作。 二:表单有多个“CSS SUBMITS”,如

<form action="/myaction" method="POST">
<a id="foo1" name="foo1" href="#" role="form_button">submit1!</a>
<a id="foo2" name="foo2" href="#" role="form_button">submit2!</a>
<a id="foo3" name="foo3" href="#" role="form_button">submit3!</a>
<input type="submit" id="canfoo" name="canfoo" value="I can process this"/>
</form>
<script>
$('a[role=form_button], div[role=form_button], span[role=form_button]').bind( 'click', function(){ $('form').submit(); } );
</script>

我怎么能在/ myaction中做到这一点:

if ($_POST['foo1']) { action; return; } // :(
if ($_POST['foo2']) { action; return; } // :(
if ($_POST['foo3']) { action; return; } // :(
if ($_POST['canfoo']) { action; return; } // THIS WORKKKKKSS!!

如何才能使foo1,foo2,foo3工作?

(我使用jQuery:

$('a[role=form_button], div[role=form_button], span[role=form_button]').bind( 'click', function(){ $('#actiontodo').val(this.id); $('form').submit(); } );

),然后,在另一方面(行动),

我做:

IF ($_POST['ACTIONTODO'] == "foo") { action; return; }

但是,我不喜欢这个解决方案!我想要&lt; A表现得和&lt; input type =“submit”

非常感谢你的帮助!

3 个答案:

答案 0 :(得分:6)

你不应该优先考虑视觉而不是可用性,这是一个巨大的错误。无论如何,你可以设置任何按钮/输入的样式,以满足你的需求,没有任何问题,只需要一个很好的CSS教程。

不要重新发明轮子。

答案 1 :(得分:3)

您可以使用您想要触发.submit()事件的任何元素。

例如,这种形式:

<form id="targetForm" action="/myaction">
   <input type="text" value="Oh hai!"/>
</form>

可以通过以下jQuery提交:

$('#targetForm').submit();

但是,您可以在CSS中设置按钮和输入字段的样式而不会有太多麻烦。

更新

我同意Ben的意见,你应该重新考虑以这种方式提交表格。

对于多个提交触发器..

因此,如果您有多个触发器,则需要一个隐藏字段来记录POST的这些信息。

这样的事情会起作用......

<form id="targetForm" action="/myaction">
   <input type="text" name="myText" value="Oh hai!"/>
   <input type="hidden" name="whichTrigger" value="default" />
</form>

然后每个触发器都会......

$('#whichTrigger').val("myTriggerName"); // A different value for each one of course.
$('#targetForm').submit();

答案 2 :(得分:-3)

我解决了这个问题:

<form action="/myaction" method="POST">
<div id="foo1" name="foo1" href="#" role="form_button"><button type="submit">submit1!</button></div>
<div id="foo2" name="foo2" href="#" role="form_button"><button type="submit">submit2!</button></div>
<div id="foo3" name="foo3" href="#" role="form_button"><button type="submit">submit3!</button></div>
<input type="submit" id="canfoo" name="canfoo" value="I can process this"/>
</form>

!!!!!!!!!!!!!!!!!!!谢谢!