-1

我无法弄清楚为什么这不起作用,因为我做的一切都是正确的。这是一个简单的创建帐户表单。我为一些字段设置了验证码,例如姓名、电子邮件和密码。还有很多其他领域。但首先我尝试这个。

喜欢在这里: jsfiddle

和 HTML 的代码:名字

        <input type="text" name="fname" id="fname"/>



        <input type="text" name="lname" id="lname />          

        <input type="text" name="remail" id="remail" />


      New Pasword
     <input type="password" name="rpass" id="rpass"  />

       <input name="regis" type="submit" class="color2" id="id" value="Submit" />

这里的javascript代码:

     function validateRegis() {
//regex for fname and lname

var fname = $("#fname").val();

var lname = $("#lname").val();
  var patt_n = /[a-z]{2,20}/i;
//checking fname and lname for regex matching 
var ftest = patt_n.test(fname);
var ltest = patt_n.test(lname);

var remail = $("#remail").val();
var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9\_\.\-]+[a-zA-Z0-9\_\-]+@[a-zA-Z0-9]+[a-zA-Z0-9\.\-]+[a-zA-Z0-9]+\.[a-z]{2,4}$/;

var test = filter.test(remail);
var rpass = $("#rpass").val();
var patt = /[a-z0-9~!@#$%^&*()_\ ]/i;
var test2 = patt.test(rpass);


if (fname === "" || ftest === false) {
    alert("Please provide first name!");
    $("#fname").focus();
    return false;
} else if (lname === "" || ltest === false) {
    alert("Please provide Last name!");
    $("#lname").focus();
    return false;

} else if (remail === "" || test === false) {
    // 
    alert("Please provide email in correct format!");
    $("#remail").focus();
    return false;

} else if (rpass === "" || rpass.length < 8 || test2 === false) {
    alert("Please provide password!");
    $("#rpass").focus();
    return false;

} else if ((fname !== "") & (lname !== "") & (remail !== "") & (test === true) & (rpass >= 8) & test2 === true) {

    return true;
}
}

它需要 jquery 来运行代码。

4

1 回答 1

0

问题是该validateRegis功能在全局范围内不可用。

在小提琴 UI 左侧面板中,第二个选择框 select No Wrap in body,它工作正常。

演示:小提琴

当您选择onLoad那里时,脚本框架下的所有脚本都包装在一个匿名函数下,因此您的validateRegis方法成为该匿名函数的本地成员。Uncaught ReferenceError: validateRegis is not defined因此,当调用函数 submit 导致抛出错误时,该函数将不可用。

于 2013-04-04T03:39:19.400 回答