Jquery链接选择框,如何禁用空白选项

时间:2013-05-04 13:16:35

标签: jquery select chained

<select id="countryselect" name="country>
    <option value="US">United States</option>
    .
    .
</select>

<select id="cityselect" name="city"></select>

这是html代码和

$.cityselect = function(){
    var td= $('#countryselect').val();
    $.ajax({
        type: "POST",
        url: "action.php",
        data: {'countrytd':td},
        success: function(e){
            $('#cityselect').html(e);
        },
    });
};

这是我的链式选择功能。在action.php中创建选项的Mysql进程。

这是事情,当我使用这个功能时,结果就是

<select id="cityselect" name="city">
    <option value></option> // empty value
    <option value="1">New York</option>
    <option value="2">Broadway</option>
</select>

我不想要空值,因为我需要那些信息。我写到任何地方都没有空值。 php文件没有问题因为我改变了这个

$('#cityselect').html(e);

到这个

$('#cityselect').html('<option value="1">name</option>');

无论如何它都会将空白值添加到顶部。

如何禁用该过程或如何在操作后删除空白值。

此外,当我使用来自成功的'e'时,它包含元标记和一些其他头元素,我在action.php中使用它来设置语言字符集。我该如何清理这些?

1 个答案:

答案 0 :(得分:0)

正如@roasted所说,如果没有代码,很难完全解决这个问题,但这应该至少解决部分问题:

首先,注意:从jQuery 1.8开始,不推荐使用success回调方法:

  

从jQuery 1.8开始,不推荐使用jqXHR.success(),jqXHR.error()和jqXHR.complete()回调。要准备最终删除的代码,请改用jqXHR.done(),jqXHR.fail()和jqXHR.always()。

以下是您的部分问题的解决方案。它可能不是所有这些的解决方案,因为如果从SQL查询中获取空值,则查询,数据库或两者都可能存在问题。但是,这将为您的问题的前端部分提供“解决方案” - &gt; (这是基于您的php文件为您的<option>元素构建相关<select>元素的假设:

$.cityselect = function(){
var td= $('#countryselect').val();
$.ajax({
    type: "POST",
    url: "action.php",
    data: {'countrytd':td},
      }).done(function(data){  
         // better not to use 'e' for this variable (can be confusing)

        if($(data).html().replace(/\s/g,'').length){  
        //There are a number of ways to check this 
        //(depends on what you are expecting).
        //  The example I used will also catch blank spaces

               $('#cityselect').html(data);
           }
    })
};