繁体   English   中英

两个文本字段验证中的任何一个

[英]Anyone of two textfield validation

我有一个忘记密码的表格。 它具有两个字段1)电子邮件和2)移动。 因此,我需要对此进行验证。 就像两个字段都不能为空,两个字段都不能填充,任何一个都只能填充。 电子邮件应采用电子邮件格式,手机应仅包含数字。

javascript代码:

function validate_fgtmgrpwd(){
  var adminid=document.f_mgr_password.mgrid;
  var adminmobile=document.f_mgr_password.mgrmobile;
  var mgr_length=document.f_mgr_password.mgrmobile.value;

  if ((document.f_mgr_password.mgrid=="Ex: ManagerID@Email.com")||
  (document.f_mgr_password.mgrid==""))
    {}
    {document.getElementById("validationMessage").innerHTML="&nbsp;<font color='#FF0000'>Error: </font> Please Enter Either Email Id Or Mobile No:!";
  popup('validationPopup');
    mgrid.focus();
    return false; 
  }
}

您应该执行验证服务器端,而不是客户端。 总有办法解决您的javascript表单验证。

因此,您应该检查/验证php脚本中的POST值,并采取相应措施。

使用html5,您可以为电子邮件字段定义输入类型=“ email”(以便它正确解析插入的email),为移动电话字段定义输入类型=“ tel”。 因此,在onfocus事件中为另一个字段设置清除字段。 这应该很好。

尝试这个:

function validate_fgtmgrpwd() {
    var adminid = document.f_mgr_password.mgrid,
        adminmobile = document.f_mgr_password.mgrmobile,
        emailExp = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/gi,
        phoneExp = /^[0-9\-\+]{9,15}$/gi;

    if(!adminid.value.length && !adminmobile.value.length){
        alert("At Least one field is mandatory!");
        adminid.focus();
        return false;
    } else {
        if(adminid.value.length && !emailExp.test(adminid.value)){
            alert("Enter a valid email");
            adminid.focus();
            return false;
        } else if(adminmobile.value.length && !phoneExp.test(adminmobile.value)) {
            alert("Enter a valid phone number");
            adminmobile.focus();
            return false;
        } else {
            return true;
        }
    }
}

对于支持HTML5的浏览器,将使用本机验证,而对于其他浏览器,将使用自定义验证。

jsfiddle: http : //jsfiddle.net/MR6bD/2/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM