3

你好,我想知道如何使用我知道的标签提交表单

<a href="javascript:void()" onclick="document.getElementById('myform').submit();"></a>

但是当我在表单上尝试 javascript 验证时

 <form method="post" onsubmit="valid() name="myform" action="index.php">

那么有效的功能不起作用所以有什么方法可以使该功能起作用。我只想将一个标签用作 onsubmit。

我使用简单的警报功能来检查验证,但它不起作用,但是当我使用输入类型提交标签检查它时,它开始工作。

4

4 回答 4

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">

于 2013-05-01T20:55:11.287 回答
0

从历史上看,通过 JavaScript 方法提交的表单submit()不会调用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;
};
于 2013-05-01T21:14:17.923 回答
0

答案很简单——submit()方法不会触发事件onsubmit。如果您想在提交时验证您的代码,那么您必须自己调用valid()函数。

例子:

<a href="javascript:void()" onclick="document.getElementById('myform').onsubmit();"></a>

这将触发你的onsubmit(所以它会调用valid()

要不就:

<a href="javascript:void()" onclick="valid()"></a>

submit()然后可以在肯定验证后或任何时候从该函数调用方法。

于 2013-05-01T21:16:03.937 回答
0

我知道这个问题真的很老了。但是,如果有人真的需要一个解决方案
,例如,当一个人希望浏览器验证必填字段时。

在表单内部创建一个

<input type="submit" name="submit" />

并且点击链接实际上应该触发点击该提交输入:

<a href="javascript:void()" onclick="document.getElementById('myform').submit.click();"></a>

于 2018-03-22T15:21:24.863 回答