0

ドロップダウンを使用しており、ドロップダウンの変更でjavascriptを呼び出しています.javascriptでjqueryを使用してテーブルクラスの内容を変更しています.今問題は、ドロップダウンを再度変更する必要がある場合です. JavaScript のコンテンツ。

   function filterbyaptno(){
         var idno = document.getElementById("aplist").value;
         alert(idno);
          $.ajax({
           url:address ,
           type: 'POST',                    
           data:"idno="+idno,
           success:function(result) { 
               var numRecords = parseInt(result.rows.length);
               if(numRecords>0)
                {
                   var html = '';
                   for(var i = 0; i<numRecords;i++)
                   {
                     html +='<div><table class="support" width="700" cellpadding="10px;">
                      <tr bgcolor="#E8E8E8"><td width="7";>'+result.rows[i].firstname+'</td>'
                     +'<td width="350">'+result.rows[i].advicetoowners+'</td>'
                     +'<td width="7">'+result.rows[i].customdata+'</td><tr></table></div>'
                    }
                      $('.detais').replaceWith(html);//here i change the content of div
                }            
                 $(function() {
                        $('.droplist').change(function(){
                             filterbyaptno();//here i call javascript while dropdown change
                      });
                 });     

                }
           });  }

値をドロップダウンするようにコンテンツを適切に変更するにはどうすればよいか、誰かが私に提案できますか

4

3 に答える 3

0

次のようなものを試してください。

function filterbyaptno() {
    var idno = $("#aplist").val();
    $.ajax({
        url: address,
        type: 'POST',
        data: {
            idno: idno
        }
    }).done(function(result) {
        if (result.rows.length) {
            var html = '';
            for (var i = 0; i < result.rows.length; i++) {
                html += '<div><table class="support" width="700" cellpadding="10px;">';
                html += '<tr bgcolor="#E8E8E8"><td width="7";>'+result.rows[i].firstname+'</td>';
                html += '<td width="350">'+result.rows[i].advicetoowners+'</td>';
                html += '<td width="7">'+result.rows[i].customdata+'</td><tr></table></div>';
            }
            $('.detais').replaceWith(html);
        }
    });
}

$(function() {    
    $(document).on('change', '.droplist', filterbyaptno);
});
于 2012-09-12T17:06:55.227 に答える
0

表示されている html (特に、クラスの詳細を含む要素) がないと、言うのは難しいです。

html +='<div><table cla

する必要があります

html +='<div class='details'><table cla

編集:

クラスの詳細を含むテーブルから始めているようです。関数が初めてトリガーされると、クラス サポートのテーブルを含む div に置き換えられます。

したがって、あなたのhtmlは

<table class='details'>
...
...
...
</table>

<div>
 <table class='support'>
 ...
 ...
 ...
 </table>
</div>

それは本当にあなたが望むものですか?

于 2012-09-12T16:59:51.340 に答える
0

成功した ajax 呼び出しからこれを削除します。そこにあるべきではありません。

$(function() {
   $('.droplist').change(function(){
      filterbyaptno();//here i call javascript while dropdown change
   });
}); 

関数の外側に置き、代わりfilterbyaptnoに使用.liveします。

$('.droplist').live('change', function(){
   filterbyaptno();//here i call javascript while dropdown change
});
于 2012-09-12T17:05:32.227 に答える