2017-11-06 9 views
0

ここに私のJavaScriptコードです。コメント行は動作します: preventDefaultが機能しないのはなぜですか?

$("#regForm").submit(function(event) { 
    // event.preventDefault() 
    password = $("#inputPassword3") 
    login = $("#inputEmail3") 
    user_instance = 0 
    $.ajax({ 
     url: "{{ url_for('get_users') }}", 
     method: 'POST' 
    }).done(function(data) { 
     data.forEach(function(item) { 
     if (item.username == login.val() || item.mail == login.val()) { 
      user_instance = item 
     } 
     }) 
     pass_arr = sjcl.hash.sha256.hash(password.val()) 
     hash = sjcl.codec.hex.fromBits(pass_arr) 
     console.log(hash, user_instance.passwd) 
     if (hash != user_instance.passwd) { 
     event.preventDefault() 
     console.log("+") 
     password.attr("style", "border:#f00 solid 1px") 
     password.attr("placeholder", "Wrong password") 
     } 

event.preventDefault()

はここで働いていません。

<div id="regForm"> 
<form class="form-horizontal" method="POST" action="{{ url_for('login') }}"> 
    <div class="form-group"> 
    <label for="inputEmail3" class="col-sm-2 control-label">Email/Login</label> 
    <div class="col-sm-10"> 
     <input type="imput" class="form-control" id="inputEmail3" placeholder="Email/Login" name="email"> 
    </div> 
    </div> 
    <div class="form-group"> 
    <label for="inputPassword3" class="col-sm-2 control-label">Password</label> 
    <div class="col-sm-10"> 
     <input type="password" class="form-control" id="inputPassword3" placeholder="Password" name="password"> 
    </div> 
    </div> 
    <div class="form-group"> 
    <div class="col-sm-offset-2 col-sm-10"> 
     <div class="checkbox"> 
     <label> 
      <input type="checkbox" name="remember_me"> Remember me 
     </label> 
     </div> 
    </div> 
    </div> 
    <div class="form-group"> 
    <div class="col-sm-offset-2 col-sm-10"> 
     <button type="submit" class="btn btn-default" name="sign-in">Sign in</button> 
    </div> 
    </div> 
</form> 

それは、フォームの変更の色は、それが理由であっても、とにかく形成提出しますか?

+0

を試してみてくださいする必要がありますとしてコメントを外しpreventDefault()が動作しているとき、私はあなたが求めているのか分かりません。最初の例はコメントされていますが、それはうまくいきます。 2番目のHTMLブロックにpreventDefaultへの参照はありませんが、動作しないと言います。それは意味をなさない。 –

+2

'event.preventDefault()'を遅く呼び出すと、それをajaxコールバックで使用することはできません。 –

+0

コードを操作するには、フォームのIDをregFormに変更する必要があります。フォームにはdivでないデフォルトの動作があります。 IDとテストを変更するだけです。 –

答えて

0

この

$('body').on('submit', 'YOUR-ID' ,function(event) {} 
+0

それでもうまくいきません。 – vadimuha

+0

私のコードを更新してください。 –

+0

どちらも動作していません – vadimuha

関連する問題