已经写好用户名重复验证了,但提示重复后仍然能提交表单

sweet2012love 发布于 2013/10/17 08:57
阅读 1K+
收藏 0

JS代码如下:

    <script language="javascript">
    function submitForm(onSubmited){
var code1 = $("select[name='code']").val();
var code2 = document.getElementById('code').value;
//alert(code1+'='+code2+"--userType:"+userType);
    if($("input[name='entity.userId']").val()==""){
  $.messager.alert('提示','请填写用户帐号!', 'info');
  $("input[name='entity.userId']").focus();
  return false;
}
if($("input[name='entity.userName']").val()==""){
  $.messager.alert('提示','请填写用户名称!', 'info');
  $("input[name='entity.userName']").focus();
  return false;
}
if($("input[name='entity.password']").val()==""){
  $.messager.alert('提示','请填写用户密码!', 'info');
  $("input[name='entity.password']").focus();
  return false;
}
if($("input[name='pwdable']").val()==""){
  $.messager.alert('提示','请填写确认密码!', 'info');
  $("input[name='pwdable']").focus();
  return false;
}
    if($("input[name='entity.password']").val()!=$("input[name='pwdable']").val()){
      $.messager.alert('提示','对不起,密码确认错误!', 'info');
  return false;
}
if($("select[name='code']").val()==""){
  $.messager.alert('提示','请选择所属部门!', 'info');
  $("select[name='code']").focus();
  return false;
}


$('#userEditForm').submit(function(){
isSubmited=1;
              $(this).ajaxSubmit(function(data){ 
                   onSubmited();
  $.messager.alert('提示',data, 'info');
              });
 
              return false; //阻止表单默认提交
         });
 
$('#userEditForm').submit();
return true;
}
function check(value){
$.ajax({
type : "POST",
url : 'validateUser.action',
data : {userId: "3455"},
success : function(msg) {
if(msg=='no') {
$.messager.alert('警告', '用户帐号已经存在,请重新输入!', 'info');
$("input[name='entity.userId']").focus();
}
}

});


}


</script>

<s:form name="userEditForm" method="post" action="insertOrUpdateUser" id="userEditForm">

<td width="16%" height="28" class="tdLabel">用户帐号</td>
      <td width="32%">
      <s:if test="actionType=='insert'">
      <s:textfield name="entity.userId" size="20" onchange="check(this.value);" maxlength="40"/>

各位大神看看哪里出了问题?

下面回答有其它的相关代码。

可否给指条明路啊 怎么才让让check函数与提交表彰函数关联呢 我刚进入开发行业,还不太懂

加载中
0
s
sweet2012love
表单代码:<s:form name="userEditForm" method="post" action="insertOrUpdateUser" id="userEditForm">
0
s
sweet2012love

struts配置代码:

 <!-- 查验用户账号是否存在 -->
<action name="validateUser" class="userAction"  method="validateUser">
            
        </action>

0
s
sweet2012love

UserAction代码:

/*
* 验证用户账号是否重复 
*/
public void  validateUser() throws IOException{
String msg="";
String uid=ServletActionContext.getRequest().getParameter("userId");
String sqluid="select count(*) from CFG_USER where userId='"+uid+"'";//select count(*) from CFG_USER where userId='admin'
int count=0;
try {
count = ((UserService)service).getCount(sqluid);
if (count>=1) {
msg = "yes";

}else {
msg  = "no";
}
outPrint(msg);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
outPrint(e);
}

}

0
甘薯
甘薯

对前台不是很熟,你的代码也很乱,

感觉你的代码好像没有对form的before post做处理。

我觉得你应该设置一个js变量做标志,如果这个变量没有被check函数成功设置,那么就不允许它提交form

s
sweet2012love
0
天马行空&
天马行空&

你的check的js方法和submit验证的方法好像完全没有关系.提示帐号重复.但没有限制form提交.

s
sweet2012love
哦谢谢
0
仰望_星空

<s:form name="userEditForm" method="post" action="insertOrUpdateUser" id="userEditForm">

改成

<s:form name="userEditForm" method="post" action="insertOrUpdateUser" id="userEditForm" onSubmit="return checkForm()">
$('#userEditForm').submit(function(){
isSubmited=1;
              $(this).ajaxSubmit(function(data){ 
                   onSubmited();
  $.messager.alert('提示',data, 'info');
              });
 
              return false; //阻止表单默认提交
         });

改成

function checkForm(){
isSubmited=1;
              $(this).ajaxSubmit(function(data){ 
                   onSubmited();
  $.messager.alert('提示',data, 'info');
              });
 
              return false; //阻止表单默认提交
         });
用onSubmit验证,验证通过return true;失败return false; 
还可以使用ajax进行验证
0
amonxu
amonxu
我擦,这种问题细心看一下就知道了。拿出来问反而是浪费时间。
0
s
sweet2012love

引用来自“我爱Web吧”的答案

<s:form name="userEditForm" method="post" action="insertOrUpdateUser" id="userEditForm">

改成

<s:form name="userEditForm" method="post" action="insertOrUpdateUser" id="userEditForm" onSubmit="return checkForm()">
$('#userEditForm').submit(function(){
isSubmited=1;
              $(this).ajaxSubmit(function(data){ 
                   onSubmited();
  $.messager.alert('提示',data, 'info');
              });
 
              return false; //阻止表单默认提交
         });

改成

function checkForm(){
isSubmited=1;
              $(this).ajaxSubmit(function(data){ 
                   onSubmited();
  $.messager.alert('提示',data, 'info');
              });
 
              return false; //阻止表单默认提交
         });
用onSubmit验证,验证通过return true;失败return false; 
还可以使用ajax进行验证
0
s
sweet2012love

解决了:

加一个全局变量 var userIdStatus = false;

在submitForm function中写下下面的代码判断一下:

if(!useridStatus){

$.messager.alert('提示','账号已经存在','info');

    return false;

}

0
s
sweet2012love

引用来自“sweet2012love”的答案

解决了:

加一个全局变量 var userIdStatus = false;

在submitForm function中写下下面的代码判断一下:

if(!useridStatus){

$.messager.alert('提示','账号已经存在','info');

    return false;

}

谢谢上面的朋友
返回顶部
顶部