2

チェックすると、以下のスクリプトを呼び出して、フォーム内に を使用して html のチャンクを表示するチェックボックスがいくつかあります.load

$('input.article').click(function(){
        var bits = $(this).attr('id').split('_');
        var id = bits[1];
        var article = 'article_' + id + '.html';
        $('#form_' + id).load('<?php echo base_url(); ?>assets/html/' + article);
        $('#form_' + id).toggle();
        $('.submit').show();
    });

フォームは次のようにビューで動的に作成されます。

<?php for($i = 1; $i <= 8; $i++){ ?>
        <div id="form_<?php echo $i; ?>" class="hide">
       </div>
<?php } ?>

ただし、チェックボックスがオフになっているときはいつでもロードされたhtmlを削除する必要があり、そこで行き詰まります。html の使用.toggle()は非表示になっていますが、とにかく送信されています。これを達成する方法はありますか?

4

3 に答える 3

2

これを試して -

$('input.article').click(function(){
        var bits = $(this).attr('id').split('_');
        var id = bits[1];
        var article = 'article_' + id + '.html';
        if(this.checked){
          $('#form_' + id).load('<?php echo base_url(); ?>assets/html/' + product);
        }
        else{
          $('#form_' + id).empty();  
        }
        $('.submit').show();
});
于 2013-06-14T11:36:53.360 に答える
1

そのため、チェックを追加して、チェックされているかどうかを確認します。そうでない場合は、その内容を空にして非表示にします。

var bits = $(this).attr('id').split('_');
var id = bits[1];
if (this.checked) {
    //...get content
} else {
    $('#form_' + id).empty().hide();
} 
于 2013-06-14T11:36:53.297 に答える
1

コンテナが空の場合にのみコンテンツをロードし、チェックボックスがチェックされているかどうかに基づいてコンテナを切り替えます:

$('input.article').on('change', function(){
    var id      = $(this).attr('id').split('_')[0],
        article = 'article_' + id + '.html',
        form    = $('#form_' + id);

    if (form.is(':empty'))
        form.load('<?php echo base_url(); ?>assets/html/' + article);

    form.toggle(this.checked);
    $('.submit').show();
});
于 2013-06-14T11:39:32.780 に答える