使用JQuery Mobile我有一个从数据库动态填充的选择框。截至目前,此复选框的人口正在完美运行。我添加了一个功能,其中包含一个通过“点击”事件调用功能的按钮。此功能的作用是知道是否已填充此特定复选框;如果它没有那么它根本不会做任何事情,但否则它会顺利运行。我的问题是确定这个选择框是否为空。
这是我正在处理的一个非常简化的例子:
<li>
<label for="fruit_name">Fruit</label>
<select name="some_fruit" id="fruit_name" onclick="populate_box('fruit', this);">
</select>
</li>
我的功能,从一个单独的按钮调用,如下所示:
function isSelextBoxEmpty(selectBoxId) {
var selected_value = $('#fruit_name');
/* More options... still testing the proper way:
var selected_value = $('#fruit_name').text;
var selected_value = $('#fruit_name').value;
var selected_value = $('#fruit_name').length;
var selected_value = $('#fruit_name option:selected', this);
var selected_value = document.getElementById('fruit_name');
var selected_value = document.getElementById('fruit_name').length;
var selected_value = document.getElementById('fruit_name').value;
var selected_value = document.getElementById('fruit_name').innerHTML;
*/
if(selected_value) {
alert("NOT null, value: " + selected_value);
//do something
}
else {
alert("null, value: " + selected_value);
//do something
}
}
不要担心这样做以及它是如何做到的。现在重要的是我无法检查复选框是否为空,我只是不确定如何去做。我通过论坛和文档阅读了很多内容,但这样做有很多含义,因为它取决于实现本身。
例如,使用document.getElementById(...)...
不一定会返回false,这取决于您如何使用它。在jQuery中使用$("#someID")...
可能会也可能不会产生所需的结果。我已经尝试了许多不同的时间,你可以在注释行中看到,所有这些都可以在if(...)
语句中进行评估。
您对如何实现这一目标有什么建议或想法吗?提前谢谢!
答案 0 :(得分:73)
检查选择框是否包含任何值:
if( $('#fruit_name').has('option').length > 0 ) {
检查所选值是否为空:
if( !$('#fruit_name').val() ) {
答案 1 :(得分:11)
获得所选值的一种正确方法是
var selected_value = $('#fruit_name').val()
然后你应该做
if(selected_value) { ... }
答案 2 :(得分:2)
获取所选值的另一种正确方法是使用此选择器:
$("option[value="0"]:selected")
最适合你!
答案 3 :(得分:0)
检查此答案是否经过测试且运行良好
if( !$('#id').val() ) {
// stuff here
}