2013-02-26 129 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

相关问题