2017-11-06 1 views
0

Hier ist mein JavaScript-Code. Die Kommentarzeile funktioniert:Warum funktioniert preventDefault nicht?

$("#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() ist hier nicht arbeiten:

<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> 

Sie macht geltend, ohnehin bilden, auch wenn Farbe von Formänderung, warum ist das so? Wenn uncommented preventDefault() funktioniert wie sollte

+0

Ich weiß nicht, was Sie fragen. Das erste Beispiel ist kommentiert, aber Sie sagen, es funktioniert. Der zweite HTML-Block hat keinen Verweis auf preventDefault, aber Sie sagen, dass es nicht funktioniert. Das macht keinen Sinn. –

+2

Sie rufen 'event.preventDefault()' zu spät auf, Sie können es nicht in einem Ajax-Rückruf verwenden. –

+0

Sie müssen die ID des Formulars in regForm ändern, um mit Ihrem Code zu arbeiten. Formular hat Standardverhalten nicht div. Ändern Sie einfach die ID und testen Sie sie. –

Antwort

0

sein Versuchen Sie, diese

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

Es funktioniert nicht so gut – vadimuha

+0

Ich habe meinen Code aktualisiert, bitte versuchen Sie es. –

+0

funktioniert auch nicht – vadimuha

Verwandte Themen