0
<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 中用于语言字符集的一些其他头部元素。我怎样才能清理这些?

4

1 回答 1

0

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

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

jqXHR.success()、jqXHR.error() 和 jqXHR.complete() 回调从 jQuery 1.8 开始被弃用。要为最终删除准备代码,请改用 jqXHR.done()、jqXHR.fail() 和 jqXHR.always()。

这是您的一些问题的解决方案。这可能不是所有问题的解决方案,因为如果您从 sql 查询中获得空白值,则可能是您的查询、数据库或两者都有问题。但是,这将为您的问题的前端部分提供“解决方案”->(这是基于您的 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);
           }
    })
};
于 2013-05-04T14:21:51.167 回答