2010-01-10 115 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