我有一个选择字段,当选择按钮#btnaddtocart时,我希望能够检查选择(名称=数量)是否为空,如果是,则向用户显示警报。否则不显示任何内容。该脚本有效,但问题是,如果选择确实包含警报仍然显示的值。这是为什么?
这是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 :(得分:0)
你检查错了,这个:
if($("input[name=quantity]").val() == null)
应该是这样的:
if($('#quantity').val() == '')
像input[name=...
这样的选择器会查找具有指定<input>
属性的name
标记,但您需要<select>
元素;由于您的<select>
具有id
属性,因此您只需使用ID选择器。
答案 1 :(得分:0)
# not selected
if (!$("#quantity option:selected").length) {
}
答案 2 :(得分: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。
上面的一些操作可以简单编写,只是想告诉你如何获取选择框的各种属性。
答案 3 :(得分:0)
$("#btnaddcart").click(function()
{
if($("#quantity").val() == '')
{
alert("cannot be null");
}
else{
alert($(this).val());
}
});
在jsfiddle。