【问题标题】:if i click ok in alert box all text box become empty?如果我在警报框中单击确定,所有文本框都会变空?
【发布时间】:2012-12-27 06:52:52
【问题描述】:

我遇到了错误,例如我有 4 个文本框名称、出生日期、年龄和邮件 ID。如果我输入了姓名、出生日期和年龄,但我没有输入邮件 ID。如果我单击提交,则警报框会出现在该邮件 ID 为空的情况下。如果我在该警报框中单击“确定”,则其余三个字段名称、出生日期、年龄如果单击“确定”也为空。

 <script>
 function validateForm(){
var x=document.forms["registration_form"]["user_name"].value
 if (x==null || x=="")
           {
                alert("Please Enter The Name");
return false;

}
else{ true}
var x=document.forms["registration_form"]["dob"].value
if (x==null || x=="")
           {
                alert("Please Enter Date Of Birth");
                return false;

}
  else{ true}
var x=document.forms["registration_form"]["age"].value
if (x==null || x=="")
           {
                alert("Please Enter Age");
return false;

}
else{ true}
var x=document.forms["registration_form"]["number"].value
if (x==null || x=="")
           {
                alert("Please Enter The Mobile Number");
return false;

}
else{ true}
    var x=document.forms["registration_form"]["mail"].value
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");
     if (x==null || x=="" || atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
             {
                  alert("Please Enter a Valid Mail-Id and Must fill it");
                  return false;

           }
           else{ true}
           var x=document.forms["registration_form"]["address"].value
   if (x==null || x=="")
           {
                  alert("Please Enter The address ");
                return false;

           }
else
{
return true;
}
}      
</script>

【问题讨论】:

  • 你为什么要else{ true}???
  • 同时显示调用这个验证函数的代码
  • 使用比x更好的变量名;删除您未使用的 else 子句;使用严格相等,或依赖输入值的真实性;通过使用包含输入字段及其错误消息和通用循环的关联数组来自动化所有这些代码。
  • 检查萤火虫进行故障排除..
  • 您发布的代码中的任何内容都不会修改输入字段。它发生在代码的其他部分。

标签: javascript html forms


【解决方案1】:

在您的条件检查中删除 x==null

  else
    {
    true 
    }

这个块是不必要的;

【讨论】:

  • 好的,我可以理解,但我的问题是,例如,我有 4 个文本框名称、出生日期、年龄和邮件 ID。如果我输入了姓名、出生日期和年龄,但我没有输入邮件 ID。如果我单击提交,则警报框会出现在该邮件 ID 为空的情况下。如果我在该警报框中单击“确定”,则其余三个字段名称,dob,age 如果单击“确定”,也会为空。
  • ok 为每个字段尝试 document.getElementById('field_id').value=="" 而不是按表单名称读取
【解决方案2】:

我假设您是从表单的 onSubmit 方法调用此函数。 如果是这样,请确保您也在使用 return。例如:

<form ... onSubmit="return validateForm()" />
...
</form>

这将确保当您的验证函数返回 false 时不会提交表单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    • 2021-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多