0

私はいくつかの入力があり、テキストから取得した値でそれらを埋めたいと思っています。これが私のコードです:

$( "#dialog-test fieldset" ).hide();
$( "#dialog-test fieldset:eq("+j+")" ).show();
$(this).children(".testValue").each(function(k,item) {
    $( "#dialog-test fielset:visible input").eq(k).val($(this).text());
});
$( "#dialog-test" ).dialog( "open" );

#dialog-test が非表示になっているため、 :visible は何も返さないため、これは機能しません。これは機能しますが、すべての値の変更が完了したときにのみダイアログを開くことができました:

$( "#dialog-test fieldset" ).hide();
$( "#dialog-test fieldset:eq("+j+")" ).show();
$( ".ui-dialog:eq(2) .ui-button-text:first" ).text("Modifier le test");
$( "#dialog-test" ).dialog( "open" );
$(this).children(".testValue").each(function(k,item) {
    $( "#dialog-test fieldset:visible input").eq(k).val($(this).text());
});

私は最初の解決策を使用しますが、この :visible が機能するようにプロセスを見つけることができません。

助けてくれてありがとう、ティム

4

3 に答える 3

2

ここ:

var $inputs = $( 'fieldset', '#dialog-test' ).hide().eq( j ).show().find( 'input' );

$( this ).children( '.testValue' ).each(function ( i, val ) {
    $inputs.eq( i ).val( $( this ).text() );
});
于 2012-08-07T12:59:38.027 に答える
0

これを試して。

var visible_inputs = $('#dialog-test input:visible');
var i =0;
$(this).children('.testValue').each(function(){
    $((visible_inputs)[i++]).val($(this).text());
});
于 2012-08-07T13:08:55.160 に答える
0

対応する入力をインデックスで選択する eq フィルターを試すことができます。

$(this).children(".testValue").each(function(k,item) {
    alert($(this).text());
    $( "#dialog-test input:visible").eq(k).val($(this).text());
});

よろしく

エティエンヌ

于 2012-08-07T13:01:58.050 に答える