jquery函数不能用于表单验证

时间:2016-07-05 05:12:02

标签: jquery

我正在尝试使用jQuery创建一个多步骤表单。

以下是我的代码:

<div id="div1">
<form>
<label>Username</label><input type="text" id="username"></input>
<label>Password</label><input type="text" id="password"></input>
</form>
<a href="#" class="next">NEXT</a>
</div>

<div id="div2">
<p>Content of Div 2</p>
</div>

我的JS:

function showdiv2(){
$("#div1").hide();
$("#div2").show();
}

function validateuser(){
var username =  $("#username").val().length;
if (username >5 && username<20)
    errorUser =false;
}

function validatePassword(){
var password =  $("#password").val().length;
if (password>8 && password<20)
    errorPassword =false;
}

$('.next').click(function(){
    var errorUser = false;
    var errorPassword = false;

validateuser();
validatePassword();

if(errorUser=false && errorPassword=false){
return=true;
showdiv2();

}
else{
    return=false;
}

} );

验证工作正常。但我无法使用函数showdiv2()工作。

我怎样才能做到这一点?这是Div 2中的另一个类似形式,因此我无法使用div1中的提交按钮。

请帮忙。

非常感谢。

5 个答案:

答案 0 :(得分:0)

你必须在html中的ur form标签中添加一个动作或方法,以便它将表单信息重定向到你的JS页面.. :))

答案 1 :(得分:0)

<强> DEMO LINK

&#13;
&#13;
function showdiv2() {
  $("#div1").hide();
  $("#div2").show();
}

function validateuser() {
  var username = $("#username").val().length;
  if (username > 5 && username < 20)
		return true;
}

function validatePassword() {
  var password = $("#password").val().length;
  if (password > 8 && password < 20)
    return true;
}
  
$('.next').click(function() {
var _return = false;


  if (!validateuser() && !validatePassword() ) {
    showdiv2();
    _return = true;

  } else {
    _return = false;
  }

});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="div1">
  <form>
    <label>Username</label>
    <input type="text" id="username">
    <label>Password</label>
    <input type="text" id="password">
  </form>
  <a href="#" class="next">NEXT</a>
</div>

<div id="div2">
  <p>Content of Div 2</p>
</div>
&#13;
&#13;
&#13;

  1. <input type="text" id="username">代替<input type="text" id="username"></input>
  2. password.length>8 && password.length<20代替password length>8 && <20
  3. errorUser==false && errorPassword==false代替errorUser=false && errorPassword=false
  4. 使用var在js中定义新变量

答案 2 :(得分:0)

您的HTML中存在错误,即无需关闭input代码</input>

 $(document).ready(function(){
    $(".next").click(function(){
     var urnm = $("#username").val().length;
     var pwd = $("#password").val().length;
     if(urnm >= 5 && urnm<= 20){
       if(pwd >= 5 && pwd<= 20){
         $("#div2").show();
       }
    }
    else{
      $("#div2").hide();
    }
  });
});

答案 3 :(得分:0)

            Uri allSMSes = Uri.parse("content://sms");

            String[] strColumns = { TextBasedSmsColumns.ADDRESS,
                                "MAX(" + TextBasedSmsColumns.DATE + ") as " + TextBasedSmsColumns.DATE,
                                "COUNT(" + TextBasedSmsColumns.BODY + ") as number",
                                "SUM(" + TextBasedSmsColumns.READ + ") as " + TextBasedSmsColumns.READ};

            Cursor c = getContentResolver().query(allSMSes, strColumns, 
                                                  "1=1) group by (" + TextBasedSmsColumns.ADDRESS ,null, null);

试试这个经过测试的代码。如果有任何帮助需要评论

答案 4 :(得分:0)

我将变量定义为true并且有效:

var errorUser = true;
var errorPassword = true;