人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Jqueryについての質問です。フォームのvalueを抜き取って、一回空にして、さらにもう一度元の状態に戻すコードを教えてください。

1. 複数のinputタグ、selectボックスタグ、checkbox、radiobuttonがある。
2. そこから、すべてのvalueを抜き出す。
3. すべてのvalueをリセット(空)する
4. 抜き出したvalueをもう一度セットする

最初のinputタグから抜き出して、入れるだけなら簡単にできましたが、複数種類あるフォームタグから複数個valueを取得するほうほうが分かりません。
解決につながった回答には100P以上お支払いします!

var atai = $(":input[@type='text']:first").val();
$(":input[@type='text']:first").val("");
$(":input[@type='text']:first").val(atai);

●質問者: logihot
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:@type jQuery SELECT コード タグ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● Mars
●60ポイント

multipleなselectとか同一nameのcheckboxなんかは配列を返す/配列を渡して設定できるみたいですが、

こういうケースではval()は最初の一つしか扱えないんでしょうかね?

とりあえず

var atai=new Array();
$(':text').each(function(){
atai.push($(this).val());
// 空にする $(this).val('')
// 戻す $(this).val(atai.shift());
});

こんな風にループで処理する事はできますね。


ちょっと気になったのが、これが状態の保存と復元を目的としているならvalueだけではなくDOMのcheckedやselectedも保存しないといけないので

jQueryを使うよりform丸ごと保存、復元した方が簡単かも。

以下はページ内のフォームをまるごと保存、復元する関数のサンプルです。

var formStock = new Array();
function sample(mode){ // mode:true 保存、mode:false 復元
var forms = document.getElementsByTagName('form');
if(mode) {
for(var i=0;forms[i];i++)
formStock[i] = forms[i].cloneNode(true);
} else {
if(formStock.length == 0)return;
for(var i=0;forms[i];i++)
forms[i].parentNode.replaceChild(formStock[i],forms[i]);
}
}

cookieに保存、cookieから復元したいとなると使えないし、

状態の保存、復元の間に入力以外の操作(プロパティをいぢるとか)が行われるような仕組みがあるときも使えない手法ですが。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ