4

数ページの長さのフォームがあります。フォームをトラバースするには、コンテナー div を表示および非表示にするだけです。最後のページは送信前の確認ページです。フォームのコンテンツを取得してレイアウトし、ユーザーが入力した内容を確認できるようにします。これらのいずれかをクリックすると、元のページ (#nav1~3) に戻り、そのフィールドにフォーカスして、必要に応じて新しい値を入力できるようにします。

jQueryを使用して、すべてのフィールド/ラジオ/チェック/選択/テキストエリア/その他の変数を作成しました。私の方法がばかげていると思われる場合は、基本的には pwn してください。この方法はすでに正常に機能していますが、スケーリングしようとしていますが、自分が何をしているのか本当にわからないため、方法がわかりません。考え?

  var field1 = '<a href="#"
    onclick="$(\'#nav1\').click();$(\'input#field-1\').focus();"
    title="クリックして編集">' +
    $('input#field-1').val() + '</a>';
    $('#field1-confirm').html(field1);

  var field2 = '<a href="#"
    onclick="$(\'#nav1\').click();$(\'input#field-2\').focus();"
    title="クリックして編集">' +
    $('input#field-2').val() + '</a>';
    $('#field2-confirm').html(field2);

など、フィールド 3、4、5 ~ 25 などで。

プログラマー以外の言葉で説明するのを手伝ってくれたら、私はあなたを永遠に愛します.

4

2 に答える 2

3

配列の紹介から始めたいと思います。これは、初心者にとってはかなりまともに見えます。

開始するために配列とループに頭を包み込むと、うまくいくでしょう。

于 2008-10-31T20:28:09.637 に答える
2

複雑になりすぎずに、反復的なものを処理する関数を作成できます。私はこれをテストしていませんが、あなたはアイデアを得るでしょう:

function valField(fieldName,navName) {
    var output = '<a href="javascript://" onclick="$(\''+navName+'\').click();$(\'input#'+fieldName+'\').focus();" title="Click to edit">' + $('input#'+fieldName).val() + '</a>';
 $('#'+fieldName+'-confirm').html(output);
}

valField("field-1","nav1")
valField("field-2","nav1")
valField("field-293","nav3")

Javascript に慣れてきたら、これらすべての「valField()」呼び出しを処理するループを作成するか、フォームを調べてそこにあるものを見つけ、イベント ハンドラーを生成してすべてを自動的に結合する何かを作成するでしょう。それは確かに「n00bware」ではありませんが、考えさせられることがあります。

また、出力でこれを使用する代わりに:

$(\''+navName+'\').click();

nav タブの onclick に実際にあるコードに置き換えることができます。

この問題を解決するには、何十もの方法があります。一歩ずつ進んでください。

于 2008-10-31T20:35:45.270 に答える