使用jquery在click事件上提交表单

时间:2011-06-09 21:21:14

标签: javascript jquery forms

那么有人可以告诉我们为什么这些选项都不会真正提交表格?我正在尝试做一些更复杂的事情,但我已经将其归结为此尝试找出为什么我似乎无法使用点击事件提交此表单并提交()

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
   $('#submitButton').click(function(e) {
        e.preventDefault();
        $("#testForm").submit();
    });

   $('#submitLink').click(function(e) {
        e.preventDefault();
        $("#testForm").submit();
    });
});
</script>
</head>

<body>
<form action="javascript:alert('submitted');" method="post" id="testForm">
    <label>Name</label>
    <input type="text" name="name" value="" />
    <input type="submit" name="submit" value="Submit" id="submitButton" />
    <p><a href="#" id="submitLink">Submit Form</a></p>
</form>

</body>
</html>

谢谢!

5 个答案:

答案 0 :(得分:11)

这是因为提交按钮的名称被命名为“submit”,将其更改为除“提交”之外的任何内容,尝试“submitme”并重试它。它应该可以工作。

答案 1 :(得分:8)

为什么不简单地使用提交按钮来运行您想要的代码。如果您的函数返回false,它将取消提交。

$("#testForm").submit(function() {
    /* Do Something */
    return false;
});

答案 2 :(得分:5)

如果您在表单标签中有表单操作和输入类型=提交,它将以旧式方式提交并基本上刷新页面。在进行AJAX类型事务时,这不是理想的效果。

删除操作。或者完全删除表单,但在某些情况下它可以派上用场来排序以减少您的工作量。如果表单标记仍然存在,则将表单标记移动到表单标记之外,或者使其成为带有onclick或click处理程序的链接,而不是输入按钮。在这种情况下,Jquery UI按钮效果很好,因为您可以使用标签元素模仿输入按钮。

答案 3 :(得分:4)

使用jQuery按钮单击

$('#button_id').on('click',function(){
     $('#form_id').submit();
 });

答案 4 :(得分:2)

您是否需要将表单发布到URL或者您是否只需要检测提交事件?因为您可以通过添加onsubmit="javascript:alert('I do also submit');"

来检测提交事件
<form action="javascript:alert('submitted');" method="post" id="testForm" onsubmit="javascript:alert('I do also submit');">...</form>

不确定这是你想要的。