0

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

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>

错误

在此处输入图像描述

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

4

3 回答 3

1

在你的情况下,这条线

var fname=formname.fname.value;

在执行验证功能时抛出错误,因为表单中没有元素fname,注释它,你很好 http://jsbin.com/oxawil/1

于 2012-12-03T17:05:17.127 回答
0

不知道什么是不可取的行为(您没有说),我猜这与 validate 函数成功时缺少正返回值有关。代码刚刚落下。

于 2012-12-03T16:56:16.757 回答
0

您可以使用 jQuery 来更轻松地选择 html 的各个部分。查看这个jsFiddle以获得有效的解决方案。

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

$.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);
    }
}
于 2012-12-03T17:04:54.860 回答