2017-07-12 28 views
0

這裏是我的標記jQuery的空字符串select.val()

<select id="packages"></select> 

這裏是我JS

$.ajax({ 
    url: "get_packages", 
    success: function(data) { 
     var form = $("select#packages"); 
     for (var i=0 ; i<data.length; i++) { 
      form.append("<option>"+data[i].package_name+"</option>"); 
     } 
    }, 
    dataType: "json" 
}); 

var pack = $("#packages").val(); 
console.log(pack) /* RETURNS UNDEFINED */ 

這裏是模型

public function get_packages(){ 
     return $this->db->from("packages")->get()->result_array(); 
} 

控制器

public function get_packages() { 
     header("Content-type: application/json"); 
     $res = $this->swimsdb->get_packages(); 

     echo json_encode($res); 
} 

這似乎是什麼問題?我有其他下拉框,但他們設法不返回一個未定義的值。這是它返回未定義的唯一情況。

+0

是jQuery代碼包裹在$(文件)。就緒(函數(){你的代碼在這裏}); ?? – Sujith

+0

這裏是你不能使用單詞作爲變量[JS保留](https://www.w3schools.com/js/js_reserved.asp) –

+0

@DavidJorHpan我改變了變量名,但它仍然沒有工作 –

回答

0

添加一個選項,您的選擇元素,

<select id="packages"><option value=""></option></select> 

的jsfiddle:https://jsfiddle.net/2rw3ewjL/1/

+0

仍未定義:( –

+0

沒有任何選項''它會返回'null'。'undefined' is沒有找到元素時返回。 –

0

確保$是jQuery的。在您的瀏覽器控制檯窗口中執行代碼$.fn.jquery應該顯示jQuery版本,否則它是對其他庫的引用。如果是這樣的問題,請使用上面的行jQuery("#packages").val()

0
form.append("<option>"+data[i].package_name+"</option>"); 

改變這樣

$form.append("<option>"+data[i].package_name+"</option>"); 

$的jQuery對象