我有以下脚本,它只是我的实际代码的示例,但其行为与实际代码相同:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form action="http://google.com/">
<input type="text" name="item_name" />
<input type="hidden" name="submit" value="save" />
<a href="" id="save">Submit</a>
</form>
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script>
jQuery(function($){
$('#save').on('click', function(e){
e.preventDefault();
$('form').submit();
});
});
</script>
</body>
</html>
您可以看到,有一个带有 id save 的 a
标记,即单击此链接时,表单应该提交,但没有。这是由名为 submit
的隐藏输入引起的,如果我更改名称,它就能正常工作。
在 Linux 上的 chrome 和 firefox 上尝试过此操作。谁能解释一下吗?
这是fiddle
--编辑--
我尝试使用 native 点击事件:
document.getElementById('save').onclick = function(e){
e.preventDefault();
document.getElementsByTagName('form')[0].submit();
}
表单也无法提交。
最佳答案
我认为这与以下问题是同一个问题: TypeError: e[h] is not a function
拥有名为“提交”的输入会向表单添加“提交”属性,这意味着您无法将 .submit() 作为函数调用。
您应该将隐藏的输入命名为其他名称。
关于javascript - 无法使用 jquery 提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33382972/