-1

jQueryによって動的に作成された入力があり、初期値を設定し、その値をデフォルト値として保持したい(フォームをリセットした後に再び表示される)。私は周りを検索しましたが、解決策を見つけることができません。

明確にするために、誰かが私の質問を評価した後、ここのデフォルト値はプレースホルダーに保存されている値ではありません (入力がフォーカスされると消えます)、それは真の編集可能なテキストです!

解決策を見つけました!フォームをリセットすると、Web ブラウザは入力の「値」属性のテキストを取得し、デフォルトのテキストとして再表示します。したがって、新しい入力要素を作成する場合は、それに「値」属性を与える必要があります。jQuery では、要素の表示可能な値を一時的に変更するだけで入力の値属性を上書きしないメソッド val() を使用する代わりに、メソッド attr('value', newValue) を使用する必要があります。

4

1 に答える 1

1

作成時に要素に値を設定してみてください。JSFiddle: http://jsfiddle.net/turiyag/UG7uw/6/

$("form").append('<input type="text" value="456" />');
$(":button").click(function(){
    $("form").reset();
});

編集:

あなたのコードを見て、要素にイベントをアタッチする方法を詳しく調べる必要があると思います。この例は、「クリック」イベントで実行される Javascript コードを実行する方法を示しています。ページの Javascript が JSFiddle の Javascript ボックスにあることに注意してください。http://jsfiddle.net/turiyag/uUCGV/8/

また、「空の要素」の場合は、タグの末尾に「/>」を付けて閉じる必要があります。例えば:

<input type="text" value="foo" />

「id」が割り当てられている要素でクローンを使用することは避けます。clone() は id 属性と初期値属性もコピーします。新しい要素の作成は、はるかにクリーンです。

さらに、通常、コード内の「jQuery」の代わりに「$」記号を使用できます。これにより、タイピングが大幅に削減されます。

この例のコードは、初期値を「Input #1」、「Input #2」などに設定します。リセット ボタンは、フォームをこれらの値にリセットします。

event.preventDefault() は、クリックされた要素からのフォーム送信のデフォルト アクションを防ぎます。

これは物事に答えますか?

于 2013-02-06T08:26:43.193 に答える