1

5 つのアップロード フィールドがありますが、最初のフィールドを除いて非表示にする必要があります。次に、クリックするたびにそれらを 1 つずつ表示します。

次のスクリプトを作成しましたが、item.show() が隠しフィールドを表示していないようです.10x

first = $('.webform-client-form').find('div[id$="-ajax-wrapper"]').first();
    first.after('<a id="addmore" href=#>[+] Add more</a>');
    $('.webform-client-form').find('div[id$="-ajax-wrapper"]').each(function(){
            $(this).hide();
            first.show();
    });

    var c = 1;//counter
    $('#addmore').bind('click', function(e) {
        item = $('edit-submitted-file'+c+'-ajax-wrapper');
        item.show();
        ++c;
    if (c == 5) {
      $('#addmore').hide();
      return false;
    }
  });

ここに画像の説明を入力

4

3 に答える 3

1

これはすべきではありません:

var item = $('edit-submitted-file'+c+'-ajax-wrapper');

なれ

var item = $('#edit-submitted-file'+c+'-ajax-wrapper'); //if using id
or
var item = $('.edit-submitted-file'+c+'-ajax-wrapper'); //if using class
于 2012-12-18T10:22:34.290 に答える
0

ID で選択しているため'#'、セレクターの先頭に追加する必要があります。-ajax-wrapper

カウンターは 2 から開始し、6 で addmore を非表示にするreturn false必要e.preventDefault()があります。

addmoreファイル入力行の最初ではなく、最後の行の後に追加する必要があります。

于 2012-12-18T10:25:01.517 に答える
0

next()関数と:visibleセレクターを使用するだけです

例:

HTML

<label><span>File</span> <input type="file" /></label>
<label><span>File</span> <input type="file" /></label>
<label><span>File</span> <input type="file" /></label>
...

JQuery

$('label:gt(0)').hide(); // hide all except the first one
$('label:visible').click($(this).next('label').show()); // show the following

:visible非表示の要素をクリックすることはできないため、必須ではありませんが、これは単なる最適化です。

于 2012-12-18T10:26:58.987 に答える