Javascript表单验证无效

时间:2012-12-03 16:50:20

标签: javascript validation

它必须是一个小问题,但我找不到它。也许你们其中一个人可以帮助我。

的Javascript        

  function white_space(field)
  {
     field.value = field.value.replace(/^\s+/, "");
  }
  function validate(){
    var formname=document.reg_form;
    var fname=formname.fname.value;
    var mess="";

  var uname=formname.prodName.value;
    if(uname==""){
    mess= mess+"User Name cannot be blank\n";

    }
   var pass=formname.prodPrice.value;
    if(pass==""){
     mess= mess+"Password cannot be blank\n";   
}

if(mess){
  alert(mess);
  return false;

   }
 }

HTML表格

 <form class="form-signin" action="#" onSubmit="return validate();" name="reg_form">
    <h2 class="form-signin-heading">Sign-In</h2>
    <input type="text" class="input-block-level" name="prodName" placeholder="Email address" onKeyPress="white_space(this)">
    <input type="password" class="input-block-level" name="prodPrice" placeholder="Password" onKeyPress="white_space(this)">
    <label class="checkbox">
      <input type="checkbox" value="remember-me"> Remember me
    </label>


    <button class="btn btn-large btn-primary" type="submit">Sign in</button>
  </form>

错误

enter image description here

浏览器不显示空字符串错误。

3 个答案:

答案 0 :(得分:1)

在你的情况下这一行

var fname=formname.fname.value;

执行验证函数时抛出错误,因为表单中没有fname的元素,对它进行评论,你就可以了 http://jsbin.com/oxawil/1

答案 1 :(得分:0)

不知道这种行为是不受欢迎的(你没有说),我猜测如果验证功能成功,它与缺少正回报值有关。代码刚刚结束。

答案 2 :(得分:0)

您可以使用jQuery更轻松地选择部分HTML。查看此jsFiddle以获得有效的解决方案。

请注意,检查javascript中的值并假设值在您的安全级别中是正确的是不安全的。因此,提交表单更常见,如果输入是valide则返回。

$.ajax('url', function(json) {
    var msg = '';
    switch(json.status) {
        case 'name':
            msg += 'name not set';
            break;
        case 'pwd':
            msg += 'password not set';
            break;
    }
    if(msg != '') {
        alert(msg);
    }
}