2011-04-17 148 views
0

我有一个选择字段,当选择按钮#btnaddtocart我希望能够检查选择(名称=数量)isnt null,如果它是然后警报是向用户显示。否则不显示任何东西。该脚本的作品,但问题是,如果选择确实包含一个值仍然显示警报。为什么是这样?如何检查是否选择字段

下面是HTML

<select class="select" id="quantity" name="quantity"> 
<option selected="selected" value="">select one</option> 
<option value="data1">data1</option> 
<option value="data2">data2</option> 
<option value="data3">data3</option> 
</select> 

这里是JS

$(document).ready(function() { 

    $("#btnaddcart").click(function() 
    { 

     if($("input[name=quantity]").val() == null) 
      { 
       var data = $(this).val(); 
       alert(data); 
      } 
     }); 
}); 

回答

0

你检查错误的事情,这样的:

if($("input[name=quantity]").val() == null) 

应该是这样的:

if($('#quantity').val() == '') 

input[name=...这样的选择器查找具有指定的name属性的<input>标记,但您希望得到<select>元素;由于您的<select>具有id属性,因此您可以使用ID选择器。

0

u能做到像

# not selected 
if (!$("#quantity option:selected").length) { 

} 
0

你不需要使用jQuery这一点。在你的例子中,试试这个代码:

$(document).ready(function() { 
    $("#btnaddcart").click(function(){ 
     var box=document.getElementById('quantity'); 
     var index=box.selectedIndex; 
     // any one selected apart from the first option 
     if(index!=0){ 
      var data=box.options[index].value; 
      alert(data); 
     } 
    }); 
}); 

我真的建议不要使用jQuery,如果你真的需要索引。

上面的一些操作可以写成简单的,只是想告诉你如何获得选择框的各种属性。

0
$("#btnaddcart").click(function() 
{ 
    if($("#quantity").val() == '') 
     { 
      alert("cannot be null"); 
     } 
    else{ 
      alert($(this).val()); 
    } 
}); 

jsfiddle