由于JS冲突,HTML提交按钮的JavaScript替代方案

由于JS冲突,HTML提交按钮的JavaScript替代方案,javascript,html,forms,Javascript,Html,Forms,我创建了一个页面,在该页面中,我在输入字段上使用JavaScript验证器(使用来自JavaScript coder.com的脚本),但我不能使用my提交表单,因为它与验证脚本使用的函数冲突。我当前的提交按钮: <a href="" class="submit" onClick="this.form.submit();">Submit</a> 当我使用标准的HTML提交按钮时,脚本工作正常。是否有其他方式或功能提交表单而不与验证脚本冲突?我对JS信心不足,无法开始分

我创建了一个页面,在该页面中,我在输入字段上使用JavaScript验证器(使用来自JavaScript coder.com的脚本),但我不能使用my提交表单,因为它与验证脚本使用的函数冲突。我当前的提交按钮:

<a href="" class="submit" onClick="this.form.submit();">Submit</a>

当我使用标准的HTML提交按钮时,脚本工作正常。是否有其他方式或功能提交表单而不与验证脚本冲突?我对JS信心不足,无法开始分解验证脚本

请帮助,如果您需要任何其他信息,请询问。 谢谢,

试试这个


如果这是您的实际代码,那么您使用的
this
关键字不正确。从内联函数调用时,这是指正在从中调用的元素,即锚标记。(详见此处:)据我所知,您需要从表单标签提交表单

您应该使用以下内容之一:

document.getElementById('myForm').submit();
document.forms[0].submit();
document.getElementsByClassName('submit')[0].submit(); /* not IE8 compatible */
或者,如果您不能依赖具有ID标记的元素,因为该元素在页面上的顺序是已知的,并且您需要IE兼容性,那么您可以继续“向上”搜索DOM,直到找到按钮所在的表单,然后提交:

var parentelem = this.parentNode;
while (parentelem.nodeName.toLowerCase() != 'form') {
    parentelem = parentelem.parentNode;
    if (parentelem == null) { break; }
}
if (parentelem != null) {
    parentelem.submit()
}

验证脚本使用表单的onsubmit事件触发验证。当您以编程方式提交表单时,事件不会被触发。这应该起作用:

<a href="" class="submit" onClick="if(document.yourform.onsubmit()){document.yourform.submit();}">Submit</a>

其中yourform是表单的ID。有关详细信息,请参见本页:


什么是“与验证脚本使用的函数冲突”的意思?你会遇到什么错误?如果一个标准的HTML提交按钮起作用,为什么你不能只使用一个呢?请解释前面的条件是什么,你添加了什么,以及冲突是什么。如果您刚刚注入了一个验证脚本,它是如何工作的?什么时候进行验证?你检查控制台了吗?很抱歉解释得含糊不清,但我需要它作为一个元素用于样式设计。冲突只是我的理论,因为我猜验证脚本中的某些函数会覆盖onClick事件。我进一步调查后再回来。谢谢你到目前为止的投入。这可能会有所帮助。我进一步调查后再回来。谢谢你的意见。