asp.net下,jq表单验证中遇到困难,大家帮帮忙呀!谢谢。

qq_36115764 2016-09-12 12:48:52
我遇到一个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);"/>
...全文
241 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
秋的红果实 2016-09-12
  • 打赏
  • 举报
回复
立马向数据库查询 ==> 就需要将数据提交到服务器端执行,在服务器端

if(用户名存在)
{
    session["isEXIST"]="True";
}
else
{
    session["isEXIST"]="False";
}

//Form_Load时决定输入框是不是可用
if(session["isEXIST"]!=null)
{
    if(session["isEXIST"].ToString()=="True")
    { 输入框.Enable=false; }
}

  • 打赏
  • 举报
回复
引用 楼主 qq_36115764 的回复:
目前要解决的是,用户只要输入已存在的用户名或者是输入不合法的用户名,那么我们就阻止用户输入其他的文本框。
输入 text 可已使用其 readonly 属性来控制是否允许输入。
qq_36115764 2016-09-12
  • 打赏
  • 举报
回复
qq_36115764 2016-09-12
  • 打赏
  • 举报
回复
是这样的,输入正确的数据,则将 disabled=false 否则就是true
crystal_lz 2016-09-12
  • 打赏
  • 举报
回复
当用户输入用户名后,立马就向数据库查询是否有这个用户名,如果有,则阻止用户点击提交按钮。 **”Bug问题来了“:**用户输入已存在的用户名,用户接着输入合法的密码或者是验证码,那么就成功解除阻止用户提交表单的操作了 原谅我的智商没有看懂什么意思
qq_36115764 2016-09-12
  • 打赏
  • 举报
回复


还是无法解决实际问题!求远程协助呀!
小大飞 2016-09-12
  • 打赏
  • 举报
回复
2楼的方案就可以。 检查用户名是否存在用ajax。 限制文本框是否可以可以用 readonly 也可以用disabled
qq_36115764 2016-09-12
  • 打赏
  • 举报
回复
大家能远程帮助我看看吗?QQ 2067673203
xinbada1985 2016-09-12
  • 打赏
  • 举报
回复
在输入的区域加一个容器,把所有的输入框放到里面,如果用户已存在,就让这个面板不可用就好了。
qq_36115764 2016-09-12
  • 打赏
  • 举报
回复
老前辈儿们 我能看看你们jq+查数据库表单验证时怎么写的吗?
qq_36115764 2016-09-12
  • 打赏
  • 举报
回复
能贴下代码吗?主要是JQ代码这块噢! 我做起来挺伤脑筋的!

111,128

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧