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 に答える