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

时间:2012-02-08 05:20:34

标签: javascript html forms

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

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

当我使用标准的HTML提交按钮时,脚本运行正常。是否有任何其他方式或功能来提交表单而不与验证脚本冲突?我对JS没有足够的信心开始将验证脚本分开。

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

3 个答案:

答案 0 :(得分:1)

如果这是您的实际代码,则说明您使用的this关键字不正确。当从内联函数调用时,这指的是从中调用元素,即锚标记。 (有关详细信息,请参阅此处:http://www.quirksmode.org/js/this.html。)据我所知,您需要从表单标记中提交表单。

你应该使用的是以下其中一种:

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()
}

答案 1 :(得分:0)

试试这个

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

答案 2 :(得分:0)

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

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

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

http://www.javascript-coder.com/javascript-form/javascript-form-submit.phtml