.submit()和JavaScript中的表单验证

.submit()和JavaScript中的表单验证,javascript,Javascript,我正在努力提高我的香草JavaScript技能一点。我正在开发一个表单验证程序只是为了好玩。以下是我迄今为止的代码: var getParent = document.getElementById("myForm"); document.getElementById("submit").onclick = function(e) { e.preventDefault(); var cache = !cache ? "Nothing has been selected" : cache;

我正在努力提高我的香草JavaScript技能一点。我正在开发一个表单验证程序只是为了好玩。以下是我迄今为止的代码:

var getParent = document.getElementById("myForm");

document.getElementById("submit").onclick = function(e) {

e.preventDefault();

var cache = !cache ? "Nothing has been selected" : cache;

for(i = 0; i < getParent.elements.method.length; i++) {

    if(getParent.elements.method[i].checked) {
        cache = getParent.elements.method[i].value;
    }

}

getParent.submit();

}
var getParent=document.getElementById(“myForm”);
document.getElementById(“提交”).onclick=函数(e){
e、 预防默认值();
var cache=!cache?“未选择任何内容”:cache;
对于(i=0;i

正如您所看到的,这只是测试一些单选按钮,看看它们是否被选中。我正试图使用底部的
.submit()
函数来提交表单,但出现了一个错误。为什么此代码没有使用
.submit()

提交我的表单?您不能使用名为
提交
的按钮并使用
提交()


该按钮将覆盖该方法。因此,当您调用
getParent.submit()
时,它实际上指向按钮,而不是实际的提交函数。

您不能将按钮命名为
submit
并使用
submit()


该按钮将覆盖该方法。因此,当您调用
getParent.submit()
时,它实际上指向按钮,而不是实际的提交函数。

您得到了什么错误?未捕获类型错误:对象的属性“submit”不是函数为按钮使用除“submit”之外的另一个ID。这一问题与jQuery无关,问题是一样的:我要说这不是一个复制品。问题包含不同的错误消息,因为实际问题不同:他拼写为
Submit
,而不是
Submit
。我没有料到OP会通过谷歌搜索错误消息来发现这个问题,所以它完全不同。你得到了什么错误?未捕获的TypeError:object的属性“submit”#不是一个函数为按钮使用“submit”之外的另一个ID。这个问题与jQuery无关,问题是一样的:我要说这不是一个复制品。问题包含不同的错误消息,因为实际问题不同:他拼写为
Submit
,而不是
Submit
。我没有料到OP会通过谷歌搜索错误消息来发现这个问题,所以它有很大的不同。一些技术细节:表单允许您按名称访问表单的元素,例如,
loginForm。username
返回
username
输入字段。因此,虽然表单默认具有
submit
方法,但如果存在名为
submit
的字段,它将覆盖
submit
方法。这就是为什么
submit
不是一个功能:在这种情况下,它是一个按钮。啊,谢谢你,先生。我忘了我们可以很容易地覆盖方法。我总是发现这种将表单字段作为表单元素属性访问的“有用”方法具有很强的侵入性。我明白你的意图,但它经常会导致像这样奇怪的错误。@AlexWayne:这是前一个时代的产物,当时DOM API是围绕表单交互等非常特定的任务构建的。如果我们能够摆脱所有旧网站,从头开始API,这一功能可能不会成功。一些技术细节:表单允许您按名称访问表单元素,例如,
loginForm。username
返回
username
输入字段。因此,虽然表单默认具有
submit
方法,但如果存在名为
submit
的字段,它将覆盖
submit
方法。这就是为什么
submit
不是一个功能:在这种情况下,它是一个按钮。啊,谢谢你,先生。我忘了我们可以很容易地覆盖方法。我总是发现这种将表单字段作为表单元素属性访问的“有用”方法具有很强的侵入性。我明白你的意图,但它经常会导致像这样奇怪的错误。@AlexWayne:这是前一个时代的产物,当时DOM API是围绕表单交互等非常特定的任务构建的。如果我们能摆脱所有的旧网站,从头开始API,这个功能可能不会成功。