asp.net下,jq表单验证中遇到困难,大家帮帮忙呀!谢谢。
我遇到一个Bug,当用户输入用户名后,立马就向数据库查询是否有这个用户名,如果有,则阻止用户点击提交按钮。
**”Bug问题来了“:**用户输入已存在的用户名,用户接着输入合法的密码或者是验证码,那么就成功解除阻止用户提交表单的操作了。目前要解决的是,用户只要输入已存在的用户名或者是输入不合法的用户名,那么我们就阻止用户输入其他的文本框。
这个问题困扰我一宿了,我自己也拿不出什么好的解决方案,只能向大家请教请教优秀的编程思想啦!麻烦大家了。
//---这是jq代码-----
// 注册前端验证
$registerBtn.prop('disabled', true)
$('.register').on('keyup', 'input', function () {
var invaild = false;
var regPhone = /^(((13[0-9]{1})|(14[0-9]{1})|(17[0]{1})|(15[0-3]{1})|(15[5-9]{1})|(18[0-9]{1}))+\d{8})$/;
var regEmail = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
var msg = ''
if ($registerName.val() == '') {
invaild = true
msg = '请输入您在使用的手机号';
}
else if ($registerName.val().length != 11) {
invaild = true
msg = '请输入有效的手机号';
}
else if (!regPhone.test($registerName.val())) {
invaild = true
msg = '请输入有效的手机号';
}
else if ($registerPassword.val() == '') {
invaild = true
msg = '请输入密码'
}
else if ($registerRepassword.val() == '') {
invaild = true
msg = '请输入密码'
}
else if ($registerPassword.val().length < 8 || $registerPassword.val().length > 16) {
invaild = true
msg = '密码需是:' + $registerPassword.attr('placeholder')
}
else if ($registerRepassword.val().length < 8 || $registerRepassword.length > 16) {
invaild = true
msg = '再次输入密码:' + $registerRepassword.attr('placeholder')
}
else if ($registerRepassword.val() != $registerPassword.val()) {
invaild = true
msg = '两次输入密码不一致'
}
else if ($registerEmail.val() == '') {
invaild = true
msg = '邮箱不能为空'
}
else if (!regEmail.test($registerEmail.val())) {
invaild = true
msg = '邮箱不合法(邮箱格式不正确)'
}
else if ($registerCode.val() == '') {
invaild = true
msg = '请输入验证码'
}
if(msg === '')
{
msg = '注册'
}
$registerBtn.attr({ disabled: invaild }).text(msg)
})
//-------这是HTML-------
<input type="text" name="UserPhone" class="form-control" id="register-username" placeholder="请填入您使用的手机号" onblur="isRegister(this);"/>