0

いくつかのjsonデータをプルし、.append()を使用していくつかのselect要素を持つ各ユーザーの行を生成するajaxクエリがあります。これはうまく機能します。生成される選択の1つの例を以下に示します。

    <select name="mailBox" id="mailBox1" class="mailbox">
      <option value="25">25 GB</option>
      <option value="50" selected="selected">50 GB</option>
      <option value="75">75 GB</option>
      <option value="100">100 GB</option>
      <option value="0">No Mail Box</option>
    </select>   

私がやりたいのは、ユーザーが選択した値を変更したときに、データベースを更新するためにajax投稿を実行したいのですが、変更要求を検出するのに問題があります

私はこれを試しました:

$(function() {
    $('select').change(function(){
        // I have just stuck an alert in to show me if it has detected the change
    alert('hello');
    });
});

また、$('。mailbox')を使用し、IDを直接$('#mailBox1')で参照しようとしましたが、変更を検出できません。選択ボックスが静的htmlの場合、コードは正常に機能します

編集*完全なJqueryコード:

    $(function() {
          var csrf = $('[name="csrf_test_name"]').val();
           $.ajax({                                      
                  url: '/index.php/ajax/getCompanyUsers', data: {csrf_test_name: csrf}, dataType: 'json',  success: function(data)        
                  {
                    for (var i in data)
                    {

                        var email = data[i].email;
                        var files = data[i].file;

                        var emailForm = '<select name="mailBox" id="mailBox' + paramID + '" class="mailbox"><option value="25">25 GB</option><option value="50">50 GB</option><option value="75">75 GB</option><option value="100">100 GB</option><option value="0">No Mail Box</option></select>  ';
                        var filesForm = '<select name="fileStorage" id="fileStorage' + paramID + '" class="filestorage"><option value="25">25 GB</option><option value="50">50 GB</option><option value="75">75 GB</option><option value="100">100 GB</option><option value="0">No File Storage</option></select>';

                      $('#wrapper').append('<div class="company-users-email">' + emailForm + '</div>' + '<div class="company-users-filestorage">' + filesForm + '</div>');

                     $("#mailBox" + paramID + " option[value='" + email + "']").attr("selected","selected");
                     $("#fileStorage" + paramID + " option[value='" + files + "']").attr("selected","selected");

                    } 
                  } 
                });

              $('.mailbox').bind("change", function(e){ alert("hello") });      
    });
4

1 に答える 1

0

これは機能します:

$(function() {
    $('#mailBox1').bind("change", function(e){ alert("hello") });
});

http://jsfiddle.net/ej8Aa/

于 2012-09-18T15:56:30.663 に答える