你好我想知道如何使用我知道
的标签提交表单<a href="javascript:void()" onclick="document.getElementById('myform').submit();"></a>
但是当我在表单上尝试javascript验证时,例如
<form method="post" onsubmit="valid() name="myform" action="index.php">
然后有效的功能不起作用,有没有办法使功能工作。 我只想要一个标签用作onsubmit。
我使用简单的警报功能来检查验证,但它没有用,但当我使用输入类型提交标签检查它时,它开始工作。
答案 0 :(得分:2)
您的onclick()
函数正在查找ID为myform
的表单。在您的示例代码中,您的表单没有ID或名称。
此代码应该有效:
<a href="javascript:void()" onclick="document.getElementById('myform').submit();"></a>
只要在表单元素中包含ID:
<form method="post" onsubmit="valid()" name="myform" id="myform">
答案 1 :(得分:0)
从历史上看,通过submit()
JavaScript方法提交表单不会调用submit
事件处理程序(最有可能阻止无限递归)。
如果要调用onsubmit
属性中包含的代码,则应在以编程方式提交表单之前明确调用它。例如:
var form = document.querySelector('form'),
link = document.querySelector('a');
link.onclick = function() {
alert('Handler attached with JS.');
form.onsubmit.call(form);
form.submit();
return false;
};
答案 2 :(得分:0)
答案很简单 - submit()
方法不触发onsubmit
事件。如果您想在提交上验证代码,那么您必须自己调用valid()
函数。
示例:
<a href="javascript:void()" onclick="document.getElementById('myform').onsubmit();"></a>
会触发您的onsubmit
(因此会调用valid()
)
或只是:
<a href="javascript:void()" onclick="valid()"></a>
然后可以在肯定验证之后或随时随地从该函数调用 submit()
方法。
答案 3 :(得分:0)
我知道这个问题真的很老了。但如果有人真的需要解决方案 即如果需要浏览器验证必填字段的情况。
在表单内部创建
<input type="submit" name="submit" />
点击链接实际上应该触发点击该提交输入:
<a href="javascript:void()" onclick="document.getElementById('myform').submit.click();"></a>