2010-11-17 66 views
2

我需要获取一个.click()事件并防止表单按照最初设计的方式运行,并进行自己的更改并提交。这怎么可能?如何防止表单在jQuery中提交行为?

编辑:表单输入实际上有一个onclick定义的行为。我需要以某种方式重新定义它。

编辑:一些代码

<form action='link' method='get'> 
    <input type="image" name="name" id="id" class="class" onclick="this.form.action='some_link'" title="Title" value="" src="image.gif"> 
</form> 
+0

可能的重复http://stackoverflow.com/questions/1263852/prevent-form-redirect-or-refresh -on-submit或http://stackoverflow.com/questions/699065/submitting-a-form-on-enter-with-jquery或许多其他许多人。 – Shikiryu 2010-11-17 17:10:47

+0

这里的一些代码会有所帮助。 – 2010-11-17 17:13:41

回答

4
$('#form').submit(function(e) { 
    // Some code 
}); 

我认为这是不够的。

+0

因此,如果我让我们说onclick =“this.form.action ='somelink'”,它会执行,然后建议的代码(一些代码)会? – 2010-11-17 17:12:21

+0

我不确定。可以肯定的是表格会被提交。你可以使用e.prevendDefault();和this.submit()如果不起作用。 – MatTheCat 2010-11-17 17:16:40

+0

这适用于防止默认值。谢谢。 – 2010-11-17 17:24:37

0

你可以使用像这样(没有测试它,但它应该工作)

form = $("#yourform"); 
button = $("#yoursubmit"); 
button.click(function(){ 
      dosomething(); 
      form.submit(); 
      return false;}); 
+0

提交表单输入的用户如何输入? – MatTheCat 2010-11-17 17:08:37

+0

@MatTheCat:OP特意要求点击事件。该解决方案可以应用于通用按钮,即使它位于表单之外。 – nico 2010-11-17 17:57:02

5

如果您不希望它提交表单,return false在您的点击功能的末尾。如果要提交表单,请使用表单元素并调用提交功能:

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