将Click事件添加到提交按钮,然后提交表单

时间:2010-05-21 22:05:05

标签: javascript jquery

我有一个带有提交按钮的表单。我已使用JQuery将click事件附加到该提交按钮。一旦我这样做,我的表单就没有提交,我认为这是因为我添加的事件 - 如果我删除了click事件,它会成功提交表单。

我试过给我的表单一个id并调用提交函数,但这也没有成功。我该怎么办?

$('#submit_gen').click(function() {

  $('#genbtn').html('<img src="images/ajax-loader.gif" alt="loading" />');

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

});

HTML:

<form id="action_form" action="generate.php" method="post" enctype="multipart/form-data"> 

<input id="file_upload" type="file" name="upload" onchange="file_select();"/>

<input type="text" id="overlay_input">

<div id="genbtn" class="genbtn">
<input id="submit_gen" type="submit" value="Upload">
</div>

</form>

全部谢谢

5 个答案:

答案 0 :(得分:3)

我认为更好的方法是将自定义代码绑定到表单提交本身,只需用以下代码替换代码:

$('#action_form').submit(function() {
  $('#genbtn').html('<img src="images/ajax-loader.gif" alt="loading" />');
});

答案 1 :(得分:2)

它适用于Opera,但Firefox确实似乎拒绝了。

问题似乎是genbtn div中的submitbutton。如果隐藏按钮,并在按钮后插入ajax-loader.gif,它确实有效。 如果你删除提交按钮(替换html)它不起作用,firefox似乎不再提交表单了:)

$('#submit_gen').click(function() {
  $('#submit_gen').append('<img src="images/ajax-loader.gif" alt="loading" />');
  $('#submit_gen').hide();
  $('#action_form').submit(); 
});

答案 2 :(得分:1)

您是否在该匿名函数结束时尝试了return true;

答案 3 :(得分:0)

当这样的事发生在我身上时,我会制作第二个隐形按钮来进行提交。 这样的事情。

<input id="butInvis" style="display:none;" />

然后在第一个按钮的javascript函数中单击我调用butInvis.Click();

答案 4 :(得分:0)

<form id="action_form" action="generate.php" method="post" enctype="multipart/form-data"> 

<input id="file_upload" type="file" name="upload" onchange="file_select();"/>

<input type="text" id="overlay_input">

<div id="genbtn" class="genbtn">
</div>

</form>

<input id="submit_gen" type="submit" value="Upload">

将html更改为上述工作吗?