如何告诉用户在javascript中选择组合框中的第一个索引

时间:2009-12-09 23:21:58

标签: javascript jquery combobox

我有这段代码:

    $('#categories').change(function() {
            var myCars = new Array("Saab", "Volvo", "BMW");
            addRowToTable(this.value, myCars);
            $('#listings').hide();
        });

但是如果用户选择第一个项目,我不希望它调用addRowToTable方法,因为第一个元素是“请选择一个项目...”

3 个答案:

答案 0 :(得分:1)

好吧,我认为使用下拉列表的selectedIndex属性应该足够了:

$('#categories').change(function() {
    if(this.selectedIndex!=0) {
        var myCars = new Array("Saab", "Volvo", "BMW");
        addRowToTable(this.value, myCars);
        $('#listings').hide();
    }
});

当然,您可以通过jQuery选择器获得创意,但如果您目前的需求只是跳过第一项,我认为这是最简单的解决方案。

答案 1 :(得分:0)

假设“类别”是您的下拉列表的ID,您可以这样做:

$('#categories option:selected')

这应该返回下拉列表中的所有选定选项(其中有一个或者没有)。

获取所选项目的值可以这样完成:

$('#categories option:selected').val()

要查看所选项目和第一项是否相同,只需进行快速比较即可:

if ($('#categories option:selected').val() == $('#categories option:first').val())
{
//do something here
}

答案 2 :(得分:0)

如果用户只选择一个值:

  1. 向第一个项目
  2. 添加不同的“无效”值
  3. 检查该值并采取相应措施
  4. 假设无效值为零且所有其他选项都具有整数值:

    $('#categories option:selected').change(function() {
        if ($(this).val() === 0) {
            return;
        }
    
        var myCars = new Array("Saab", "Volvo", "BMW");
        addRowToTable(this.value, myCars);
        $('#listings').hide();
    });