2013-02-26 186 views
0

我有一種情況,我需要看看是否選擇了一個選項。當我點擊一個按鈕,如果沒有選擇一個選項,選擇框應該變成紅色,給我一個警報。這是行不通的。我與if語句有區別。任何解決方案jquery檢查選項是否被選中

的Javascript

$(document).ready(function(){ 

var $films = []; 

$("#button").click(function(){ 
    var $titelBetyg = []; 

    var $titel = $('#name').val(); 
    var $betyg = $('#options').val(); 

    if($titel == ""){ 
     $('#name').css('background-color', 'red'); 
     alert("Fail"); 
    } 
    else if($betyg == "0"){ 
     $('#options').css('background-color', 'red'); 
     alert("Fail"); 
    } 
    else{ 
     $titelBetyg.push($titel); 
     $titelBetyg.push($betyg); 
     $films.push($titelBetyg); 
    } 

    $('#rightbar').append($films); 
}); 

}); 

HTML

<body> 
<div id="page"> 
    <div id="header"> 
     <h1> Min filminsamling </h1> 
    </div> 
    <div id="leftbar"> 
     <form> 
      <fieldset> 
       <legend>Lägg till en film:</legend> 
       Titel: 
       <br><input type="text" name="name" id="name"><br> 
       Betyg: 
       <br><select id="options"> 
        <option>Välj betyg här...</option> 
        <option value="1">1</option> 
        <option value="2">2</option> 
        <option value="3">3</option> 
        <option value="4">4</option> 
        <option value="5">5</option>       
       </select> 
       <br><input type="button" name="button" value="Spara film" id="button"> 
      </fieldset> 
      <fieldset> 
       <legend>Sortera film:</legend> 
       <input type="button" name="stigande" value="Högst betyg" id="stigande"> 
       <br><input type="button" name="fallande" value="Lägst betyg" id="fallande"> 
      </fieldset> 
     </form> 
    </div> 
    <div id="rightbar"> 
     Filmer 
    </div> 
</div> 
</body> 
+0

根據瀏覽器的不同,您實際上會將「Väljbetyghär...」作爲默認值,而不是您所期望的。鉻是這個以及其他人的罪魁禍首 – bizzehdee 2013-02-26 22:53:21

+0

如果沒有選項被標記爲選中,總是選擇一個選項(除非您使用選項組,我認爲)。從[HTML4規範](http://www.w3.org/TR/html401/interact/forms.html#h-17.6.1):*「由於用戶代理行爲不同,作者應確保每個菜單包含默認預先選擇的選項。「* – 2013-02-26 22:54:30

回答

3

$betyg == "0"不工作,因爲它不是根據UI的可能性。

您的默認選項是......沒有。也許是一個空字符串,"";出現0

顯式設置一個選項來檢查並檢查它。

+0

雅,類似於格蘭特的說法。如果你只是把你喜歡的代碼改成'else if(!$ betyg){',你應該沒問題。 – jungy 2013-02-26 23:00:13

+0

它現在工作,非常感謝你! – DrWooolie 2013-02-26 23:13:54

1

當您檢查是否警告沒有選擇任何內容時,您會查看「選項」的值是否爲「0」。然而,你沒有爲沒有選擇的實際定義「0」的值,你只定義了值「1」到「5」。如果你要求價值未定的東西的價值,我不確定用Javascript期待什麼;我的第一個建議是爲沒有選擇的值定義值「0」,看看它是否有幫助。 :)

+0

它工作完美,謝謝! – DrWooolie 2013-02-26 23:13:22

相關問題