我无法弄清楚为什么这不起作用,因为我做的一切都是正确的。 这是一个简单的创建帐户表单。我为某些字段添加了验证码,如名称,电子邮件和密码。还有很多其他领域。但首先我要尝试这个。
喜欢这里:
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。
答案 0 :(得分:0)
问题是validateRegis
功能在全局范围内不可用。
在小提琴UI左侧面板中,第二个选择框选择No Wrap in body
,它可以正常工作。
演示:Fiddle
当您在那里选择onLoad
时,脚本框架下的所有脚本都包含在匿名函数下,因此您的validateRegis
方法将成为该匿名函数的本地成员。因此,当调用函数submit导致抛出Uncaught ReferenceError: validateRegis is not defined
错误时,该函数将不可用。