2013-12-21 67 views
0

昨天我發表了這篇文章。 :alert is not cooperating with input提示框出現與我接受使用條款

我得到它的工作,因爲我想它,但它不會採取一些地方#tjek因此,例如,如果你忘記點擊複選框,這樣就不會站起來,說:「嘿,你缺少的是眼前這個複選框,

什麼問題是#tjek不回來,告訴你缺少這一切之前,我們可以繼續前進。

所以,換句話說,它的出現,稱 「JEG godkender brugerbetingelserne

的Html

<form name="opretbruger" action="<?php $_SERVER['PHP_SELF'];?>" method="post" id="opretbruger"> 
    <table width="100%" cellpadding="0" cellspacing="0"> 
     <tr> 
     <td>Brugernavn</td> 
     <td><input type="email" name="email" class="opretbar" id="brugernavn"></td> 
     </tr> 
     <tr> 
     <td>Password</td> 
     <td><input type="password" name="pa2" class="opretbar" id="pass2"></td> 
     </tr> 
     <tr> 
     <td>Fornavn</td> 
     <td><input type="text" name="fornavn" class="opretbar" id="fornavn"></td> 
     </tr> 
     <tr> 
     <td>Efternavn</td> 
     <td><input type="text" name="efternavn" class="opretbar" id="efternavn"></td> 
     </tr> 
     <tr> 
     <td>Betingelserne</td> 
     <td><input type="checkbox" name="tjek" id="tjek"> Jeg godkender <a href="/brugerbetingelser/">brugerbetingelserne</a></td> 
     </tr> 
     <tr> 
     <td></td> 
     <td><input type="submit" name="tilmelddiggratis" value="Opret bruger" class="click opretbruger"></td> 
     </tr> 
    </table> 
    </form> 

的jQuery:

$(function() { 
    var $opretbruger = $('form[name="opretbruger"]'), 
     $pwd = $("#pass2"), 
     $usr = $("#brugernavn"), 
     $navn = $("#fornavn"), 
     $efter = $("#efternavn"), 
     $tjek = $("#tjek"); 

    $opretbruger.on("submit", function (event) { 
     var msg = "Du mangler ", 
      usr = ($usr.val().trim() !== ""), 
      pwd = ($pwd.val().trim() !== ""), 
      navn = ($navn.val().trim() !== ""), 
      efter = ($efter.val().trim() !== ""), 
      tjek = ($tjek.val().trim() !== ""); 

     msg += !usr ? "brugernavn" : ""; 
     msg += !usr && !pwd ? ", " : ""; 
     msg += !pwd ? "kodeord" : ""; 
     msg += !usr && !pwd && !navn ? ", " : ""; 
     msg += !navn ? "fornavn" : ""; 
     msg += !usr && !pwd && !navn && !efter ? ", " : ""; 
     msg += !efter ? "efternavn" : ""; 
     msg += !usr && !pwd && !navn && !efter && !tjek ? ", " : ""; 
     msg += !tjek ? "Jeg godkender brugerbetingelserne!" : ""; 

     var valid = pwd && usr && navn && efter && tjek; 
     if (!valid) { 
      alert(msg); 
     } 

     return valid; 
    }); 
}); 

回答

2

不是檢查的的複選框,您需要檢查「已檢查」屬性的狀態:

tjek = $tjek.prop("checked"); 

如果選中該複選框,將會是true,否則將爲false

該複選框根本沒有「value」屬性,所以「value」屬性將始終爲空。

+0

它的工作原理仍然不知道我已經嘗試過:( – user3117284

+0

@ user3117284我不確定我是否知道你的意思,也許你應該使用調試器逐步完成代碼。 – Pointy

+0

這是需要找出你是否點擊了複選框 – user3117284