0

jQueryv1.7.2を使用しています。

次のコードは、ブートストラップ(2.2.1)モーダル形式で該当するチェックボックスを生成します。

    $sql1="Select $sub_listing_id,$sub_listing_name FROM $sub_listing";
    $results=$wpdb->get_results($sql1,ARRAY_A);

    $html_code= '<form id="multiselect">';
    $num=0;
    foreach($results as $key=>$value)
    {
        foreach($value as $k1=>$v1)
        {        
            if($k1==$sub_listing_id)
            {
                $sub_listing_id_val=$v1;
            }
            if($k1==$sub_listing_name)
            {
                $sub_listing_name_val=$v1;

    $html_code.= '<input type="checkbox" name="list" value="'.$sub_listing_id_val.'">&nbsp;&nbsp;'.$sub_listing_name_val.'&nbsp;&nbsp;&nbsp;&nbsp;';
    $num=$num + 1;
    if($num%5==0)
    $html_code.= '<br/><br/>';
            }
        }
    }
    $html_code.= '</form>';
    echo $html_code;

ここで、いくつかのチェックボックスを選択し、選択した値を次のjQueryに渡します。

$('#btn-add-sub-listing-save').click(function (e){
    e.preventDefault();
    var ajax_url='add_sub-listing.php';
    var dataString=$('#multiselect').serialize();
    showLoader('.modal-body');
    dataString=dataString.replace(/&/g,' AND ');

    $.ajax({
    url: ajax_url + '?' + dataString,
    type: 'GET',
    dataType: 'html',
    success: function(data){
        $('.modal-body').html(data);
    }
});
});

jQueryを編集する場合:

$('.modal-body').html(dataString);

それはうまく機能します。つまり、#multiselectは常にシリアル化されますが、2回目以降は追加されません。そのため、muランディングページの値を取得できず、進行できません。

キャッシュ:falseとasync:falseを使用しました。それでも、動作しません!提案をお願いします。

たぶん、bootstrap-modal-cacheはこれと関係があります。私は以前、次のjQueryを使用してこの状況を克服していました。

$('.btn-add-sub-listing').click(function (e){
    e.preventDefault();
    $('#add-sub-listing-modal').removeData("modal");
    $('#add-sub-listing-modal').modal({remote: $(this).attr("href")})
    $('#add-sub-listing-modal').modal('show');

});

ここでは、「href」を使用しました。「href」が適用されないボタンに対してはできますか?

4

3 に答える 3

1

ほとんどの場合、HTML を置き換えるときに、ボタンを新しいボタンに置​​き換えて、クリック イベントの配線を解除します。

HTML コンテンツを置き換えるたびにクリック イベントを再配線するか、jQueryonメソッドを使用してイベントを配線する必要があります。bodyこれは、イベントが発生したときに一致するボタン要素で機能します。

$('body').on('click', '#btn-add-sub-listing-save', function(e)
{
    // handler as before
});
于 2013-03-12T11:54:00.780 に答える
0

Temp変数を追加し、ajaxが実行される前に確認してください

于 2013-03-12T12:00:55.520 に答える