Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在使用javascript提交之前验证文本框?_Javascript_Validation - Fatal编程技术网

如何在使用javascript提交之前验证文本框?

如何在使用javascript提交之前验证文本框?,javascript,validation,Javascript,Validation,我有两个默认值为0的文本框和一个提交按钮。在提交之前,我调用以下javascript函数onSubmit=“return(validate_myfrm());”。我无法使用值0验证text_1。但是对于text_2,默认值0已验证 function validate_myfrm() { var ans; if(document.myfrm.txt_1.value=="" ||document.myfrm.txt_1.value==0) { a

我有两个默认值为0的文本框和一个提交按钮。在提交之前,我调用以下javascript函数
onSubmit=“return(validate_myfrm());
”。我无法使用值0验证
text_1
。但是对于
text_2
,默认值0已验证

function validate_myfrm()
{

   var ans;
   if(document.myfrm.txt_1.value=="" ||document.myfrm.txt_1.value==0)
      {
              ans=confirm("Do you still want to continue with value 0 for text 1?");
              if(ans== true)
                  {
                     document.myfrm.txt_1.value=0;
                     document.myfrm.txt_2.focus();
                  }
              else
                  {
                     document.myfrm.txt_1.focus();
                  }
                 return false;
    }

   if(document.myfrm.txt_2.value=="" ||document.myfrm.txt_2.value==0)
            {
                ans=confirm("Do you still want to continue with value 0 for text 2?");
                if(ans== true)
                  {
                     document.myfrm.txt_2.value="0";
                     return true;
                  }
              else
                  {
                       document.myfrm.txt_2.focus();
                  }
                  return false;
            }
     return true;
}


如果我返回真;在
document.myfrm.txt_2.focus()之后页面被重定向到下一页,而不确认txt_2的值。请帮助文档。myfrm.txt_bb1。值==0

应该是:document.myfrm.txt_1.value==0

此外:

设置返回后,函数将结束并返回函数中设置的false或true

根据您的条件,当值为“”或0时,第一个if将始终返回false。由于返回false,函数将结束并返回false

编辑:

下面是一个简单的验证示例:

<form id="myfrm" name="myfrm" onSubmit="return(validate_myfrm());">
    <input type="text" name="txt_1" value="" />
    <input type="text" name="txt_2" value="" />
    <input type="submit" value="submit" />
</form>
<span id="result"></span>

<script>

function validate_myfrm()
{
   if(document.myfrm.txt_1.value!="" && document.myfrm.txt_2.value!="")
   {
       return true;    
   } else {
       document.getElementById("result").innerHTML="Error fields cannot be empty";
       return false;
   }
}
</script>

函数验证\u myfrm()
{
if(document.myfrm.txt_1.value!=“”&document.myfrm.txt_2.value!=“”)
{
返回true;
}否则{
document.getElementById(“结果”).innerHTML=“错误字段不能为空”;
返回false;
}
}

请记住,无论何时在函数中使用return,它都会停止函数并返回设置的值。

您的第一个条件应该是这样的

if(document.myfrm.txt_1.value=="" ||document.myfrm.txt_1.value==0)
 {

 }

如果安装了If函数,请立即使用Else,它将在提交之前进行验证

 function validate_myfrm()
{

   var ans;
   if(document.myfrm.txt_1.value=="" ||document.myfrm.txt_1.value==0)
      {
              ans=confirm("Do you still want to continue with value 0 for text 1?");
              if(ans== true)
                  {
                     document.myfrm.txt_1.value=0;
                     document.myfrm.txt_2.focus();
                  }
              else
                  {
                     document.myfrm.txt_1.focus();
                     return false;
                  }
    }else if(document.myfrm.txt_2.value=="" ||document.myfrm.txt_2.value==0)
            {
                ans=confirm("Do you still want to continue with value 0 for text 2?");
                if(ans== true)
                  {
                     document.myfrm.txt_2.value="0";
                     return true;
                  }
              else
                  {
                       document.myfrm.txt_2.focus();
                  }
                  return false;
            }
     return true;
    }
}

@这个-Val。。我并没有完全理解你的意思。我应该在第一个条件后留空吗?不,它只是指出你要像Marc前面提到的那样设置正确的变量名,但我没有看到它。:)