2010-01-10 116 views
0

我對JQuery很陌生,我嘗試用jquery填充我的html選擇框,但它們保持空白。下面是我的代碼:JQuery ajax回調函數

$('select').each(function(){ 
     var action = 'SELECT_FLDS_GRID'; 
     var fldnam = $(this).attr('name'); 
     $.getJSON('frm.grid.php',{'action':action,'fldnam':fldnam},function(j){ 
     var_SelectOption(j,fldnam); 
     }); 
    }); 
    function var_SelectOption(j,myfld) 
    { 
     var options = ''; 
     for(var i=0;i<j.length;i++) 
     { 
     options += '<option value="' + j[i].option + '">' + j[i].option + '</option>'; 
     } 
     $('select').each(function(){ 
     if($(this).attr('name') == myfld) {$(this).html(options);} 
     }); 
    } 

爲了澄清,如果我改變var_SelectOption與下面的代碼我得到一個結果:

function var_SelectOption(j,myfld) 
    { 
     var options = ''; 
     for(var i=0;i<j.length;i++) 
     { 
     options += '<option value="' + j[i].option + '">' + j[i].option + '</option>'; 
     } 
     $('select').html(options); 
    } 

不過這當然不是意圖,因爲這只是把同樣的optionlist到每個選擇框。所以這只是爲了顯示問題在哪裏;選項列表字符串需要附加到正確的select元素。

我一直在玩它很長一段時間,但無法找到問題。我甚至想知道我是否完全錯了...... 希望有人能幫助我。

問候, 帕特里克

回答

2

嘗試$('select[name="'+myfld+'"]').html(options);

+0

嘿感謝快速的答案,是的,這作品! 我之前(以及其他幾種方式)嘗試過這種方式,但總是使用@name和無引號,因爲這就是我在線文檔(http://docs.jquery.com/DOM/Traversing/Selectors)中閱讀它的方式: $( 「輸入[@名稱=巴]」)VAL(); 不知道有什麼區別,但它的作品完美,你回答。非常感謝。帕特里克。 – Patrick 2010-01-10 18:06:02