2014-02-14 34 views
1

下面的代碼工作正常,我表現出改變後各種SQL-結果的選擇場:JQUERY SELECT AJAX

$(document).ready(function() { 
    $('#main_kat').change(getDropdownOptions);  
}); 

function getDropdownOptions() { 
    var val = $(this).val(); 
    $.post('/ajax/joe.php?qid=<? echo $row_job['sub_quali'];?>', { value : val}, populateDropdown, 'html'); 
    $("#send").prop('disabled', false); 
} 

function populateDropdown(data) { 
    if (data != 'error') { 
     $('#subcat').html(data); 
    } 
} 

我的問題:新插入的一切是偉大的,因爲我必須manualy選擇,但如果我使用這個代碼來更新表單,我想要開放我的div #subcat allready。

我試圖開頭以下:

kat = $('#main_kat').val(); 
getDropdownOptions(kat); 

吉通過警報設置(選中),但功能不會被解僱......哪裏是我的錯?

謝謝

+4

capsoverflow ... – 2014-02-14 12:24:25

+1

我沒有看到'getDropdownOptions()'函數任何PARAM?你在找什麼?請改善你的問題。郵政相關代碼 –

回答

0

你不能只是調用函數,因爲你正在使用它。

kat = $('#main_kat').val(); 
getDropdownOptions(kat); 


function getDropdownOptions() { 
     var val = $(this).val(); 

變化:

getDropdownOptions(); 


function getDropdownOptions() { 
     var val = $(document.getElementById('main_kat')).val(); 
+1

使用'$(「#main_kat」)'而不是'$(document.getElementById('main_kat'))' –

+0

爲什麼?因爲從DOM中尋找性能更好 –

+1

如果你不使用jQuery,那麼使用jQuery有什麼用處,你可以使用var val = document.getElementById('main_kat').value;代替。 ^^ –

0

我會建議你用它來取代您的getDropdownOptions功能:

function getDropdownOptions(val) { 
    val = val || $('#main_kat').val(); 
    $.post('/ajax/joe.php?qid=<? echo $row_job['sub_quali'];?>', { value : val}, populateDropdown, 'html'); 
    $("#send").prop('disabled', false); 
} 
0

它可能會正常工作,如果你確保this參考點當您調用該函數時,您可以使用正確的對象。相反,通過kat作爲參數,你可以只調用getDropdownOptions方法用下面的代碼:

getDropdownOptions.apply(kat);