在点击输入类型=“图像”期间停止表单提交

时间:2009-04-21 12:59:27

标签: javascript jquery html

重置操作由input type="image"执行,onclick调用名为resetForm()的函数。

单击重置时,不应发生表单提交。我尝试从resetForm()函数返回false,但它仍然无法正常工作。请帮帮我。

6 个答案:

答案 0 :(得分:7)

不是在resetForm中返回false,而是在点击功能中使用preventDefault

$('#myButton').click(function(event) {
    event.preventDefault(); // yaa!
    resetForm();
});

return false也有效,但是当jQuery获得某个功能时,我通常坚持这一点。

答案 1 :(得分:2)

我将确保您的函数正确返回false,确保JavaScript中没有语法错误。

测试此方法的好方法,尝试提示(“测试返回!”);在返回假之前。

答案 2 :(得分:2)

如果您想使用return False;而非event.preventDefault();,则必须返回false 置于事件回调中。因此,如果您在resetForm()中返回false,则需要这样:

$('#myButton').click(function() {
    return resetForm();
});

更简单,如果你所做的就是点击运行一个功能(感谢JimmyP提醒):

 $('#myButton').click(resetForm);

在我看来,它更简洁,更少打字。所有人都赢了。

答案 3 :(得分:1)

我认为其他人正在描述一种不同的方式来做我所建议的:

onClick="return resetForm();"

否则onClick正在调用而不关心返回。

答案 4 :(得分:1)

有一种实际的方法。但它需要几个步骤。

  1. 定义你的..
  2. 您甚至需要绑定输入项目的点击。用jquery来做。
  3. 编写您的功能
  4. 结合:

     $(document).ready(function () {
       $("#yourinputtypeid").on("click", {Parameter1 : "your parameter value"},    
       FunctionNameToRun);
     }
    

    功能。

    function FunctionNameToRun(event)
    {
    event.preventDefault();
    // the rest of your code
    }
    

    那就是它。这应该阻止提交/重新加载页面。

答案 5 :(得分:0)

我可能更好地使用<input type="reset" />而不是type="image",因为后者具有type="submit"的语义,而前者似乎具有您想要的语义。您也可以轻松地将图像放在这样的按钮上,这样可以省去编写JavaScript函数的麻烦。

如果您想继续使用<input type="image" />,我认为从false事件返回onclick不会做任何事情。由于它具有提交表单的语义,因此表单将被提交。为了解决这个问题,您可以在表单标记中放置onsubmit属性:<form onsubmit="return submitFunction();" />。在submitFunction中,您可以检查按下了哪个提交/图片按钮,具体取决于返回truefalse。在此处<{1}}返回阻止表单提交。