2013-04-09 21 views
0

我正在测试以查看if语句的工作方式,将所选值与字符串进行比较,然后显示弹出警报。然而,无论我具体选择什么,警报结果总是说“关”。似乎if语句没有比较正确。在这里我的代码,如果语句无法比较JQuery选择的值

$("#options").change(function(){ 
           var selected = $("option:selected", this).val(); 

           if(selected == 'line 2') 
           { 
            alert("line 2"); 
           } 
           else if(selected == 'line 3') 
           { 
            alert("line 3"); 
           } 
           else if(selected == 'line 4') 
           { 
            alert("line 4"); 
           } 
           else if(selected == 'line 8') 
           { 
            alert("line 8"); 
           } 
           else 
           { 
            alert("off"); 
           } 

        }); 

HTML代码下拉列表中,

<select id="options"> 
       <optgroup label="Caption"> 
        <option value="off1">Off</option> 
        <option selected value="2 line">2 Lines</option> 
        <option value="3 line">3 lines</option> 
       </optgroup> 
       <optgroup label="Transcript"> 
        <option value="off2">Off</option> 
        <option value="4 line">4 Lines</option> 
        <option value="8 line">8 lines</option> 
       </optgroup> 
      </select> 
+0

请格式化您的代码和标记的问题,以删除多余的空白左侧。 – 2013-04-09 21:25:39

回答

2

价值为2 line,你与line 2比较(例如

试试这个;

var selected = $("option:selected", this).val(); 
    if(selected == '2 line') 
     { 
     alert("line 2"); 
     } 
+0

OMG我多么迷茫。现在它工作 – StudentIT 2013-04-09 21:25:00

0

在HTML你是比较值和值不匹配。

1

您的所有选项的值都是从您的测试中退出。

$("#options").change(function(){ 
          var selected = $("option:selected", this).val(); 
          alert(selected); 
          if(selected == 'line 2') 
          { 
           alert("line 2"); 
          } 
          else if(selected == 'line 3') 
          { 
           alert("line 3"); 
          } 
          else if(selected == 'line 4') 
          { 
           alert("line 4"); 
          } 
          else if(selected == 'line 8') 
          { 
           alert("line 8"); 
          } 
          else 
          { 
           alert("off"); 
          } 

       }); 

添加该警报将帮你测试对正确的价值。

+0

是的,我没有密切关注这一点 – StudentIT 2013-04-09 21:26:00

0

你在测试中恢复了行文本,你也可能更好地使用这个数组。

(function() { 
    var selectionValues = [ 
     '2 line', 
     '3 line', 
     '4 line', 
     '8 line' 
    ]; 


    $("#options").change(function() { 
     var selected = $("option:selected", this).val(); 

     var index = selectionValues.indexOf(selected); 
     var result; 

     if (index !== -1) { 
      result = selectionValues[index]; 
     } 
     else { 
      result = "Off"; 
     } 

     alert(result); 
    }); 
})();