Javascript 提交表格

Javascript 提交表格,javascript,Javascript,我已经编写了一个函数,它应该防止任何东西被提交,除非有两个条件是真的——即值已被放入每个必需的类别中,并且如果每个类别中都有值,则表明已提交有效的电话号码 相反,现在发生的事情是,我将得到错误消息,但它仍将提交表单。我没有看到代码中的错误,你能看到什么吗 function formValidation() { var ids = ["orgname", "cultpicklist", "catpicklist", "servpicklist", "phone", "add1", "url",

我已经编写了一个函数,它应该防止任何东西被提交,除非有两个条件是真的——即值已被放入每个必需的类别中,并且如果每个类别中都有值,则表明已提交有效的电话号码

相反,现在发生的事情是,我将得到错误消息,但它仍将提交表单。我没有看到代码中的错误,你能看到什么吗

function formValidation() {

var ids = ["orgname", "cultpicklist", "catpicklist", "servpicklist", "phone", "add1", "url", "state"] // required fields
    formValue = 1; // value indicating whether to go to the next step of the process, phone number validation. On by default.

    if (document.getElementById('deletebutton') != null && document.getElementById('orgname').value === "") {
      formValue = 0; // A separate test for when the delete button is clicked.
    }
else {
for (var i = 0, len = ids.length; i < len; i++) {
    if (document.getElementById(ids[i]).value === "") {
       formValue = 0; // Testing each of the list items
       break;
    }
}
}

// Here's the part where, if everything else passes checks, we have a regex test for phone number validation

 if (formValue == 1) {
     phoneVal = document.getElementById("phone");
     if (/^\d{3}-\d{3}-\d{4}$/.test(phoneVal) || /^\d{10}$/.test(phoneVal) || /^\(\d{3}\) \d{3}-\d{4}$/.test(phoneVal)) {
           return true;
     }
     else {
         alert("Please put in a correct phone number");
         return false;
// This shouldn't submit, but does.
     }}
     else if (formValue == 0) {
           alert('Please fill out all required fields');
           return false;
// This also shouldn't submit, but does as well.
      }


}
函数formValidation(){
var id=[“orgname”、“cultpicklist”、“catpicklist”、“servpicklist”、“phone”、“add1”、“url”、“state”]//必填字段
formValue=1;//指示是否转到流程的下一步电话号码验证的值。默认情况下为开。
if(document.getElementById('deletebutton')!=null&&document.getElementById('orgname')。值==“”){
formValue=0;//单击“删除”按钮时的单独测试。
}
否则{
对于(变量i=0,len=ids.length;i
我假设在html中有这样的内容

<form .... onsubmit="formValidation()">

应该是

<form .... onsubmit="return formValidation()">

是否从提交按钮调用此函数

提交按钮将提交表单,而不管javascript告诉它做什么。考虑使用一个简单的旧按钮并使用表单的子()函数。< /P>


函数dontSub(){
var good=false;
如果(好){
document.forms[“form”].submit();
}
}

能否将HTML部分粘贴到调用此函数的位置。它应该有onSubmit=“return formValidation()”这个函数本身乍一看很好。你怎么称呼它?我认为它需要来自“onsubmit”处理程序才能停止表单提交。我缺少一些上下文。这个函数在哪里调用?提交?这似乎对表单提交有效。不过,我需要用我的正则表达式@安德鲁:正则表达式怎么了?它目前处理
123-456-7890
1234567890
,最后处理
(123)456-7890
。为什么需要“返回”?@Nuktu,请阅读
<!DOCTYPE html>
<html>
    <head>
    </head>
    <body>
        <form name="form" action="no.html">
            <input type="button" value="submit" onmousedown="dontSub()" />
        </form>
    </body>
    <script>
        function dontSub() {
            var good = false;
            if(good) {
                document.forms["form"].submit();
            }
        }
        </script>
</html>