2013-05-04 52 views
0
<select id="countryselect" name="country> 
    <option value="US">United States</option> 
    . 
    . 
</select> 

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

這是HTML代碼和jQuery的鏈接選擇框,如何禁用空白選項

$.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中用於語言字符集的元素。我如何清潔這些?

+0

你能發佈相關的html代碼呢? – 2013-05-04 13:19:09

+0

在jsfiddle.net中創建一個複製問題的演示。不清楚你的意思是'自動將空白選項添加到頂部並將其選中' – charlietfl 2013-05-04 13:32:08

回答

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); 
      } 
    }) 
};