formに値を渡すjquery拡張

formに値入れるのにいちいち
$(':input[name=name1]').val('value1');
$(':input[name=name2]').val('value1');
 :
…って書くのがめんどくさいのでまとめて渡す拡張

作り方

jquery.fillInForm.jsとか適当に名前をつけて保存します。

/* (C) makoto@2ch.to */
(function($){
	$.fn.extend({
		fillInForm : function($_){
			var $self = this;
			if( typeof $_ === 'string' ){
				if( typeof $.parse === 'undefined' ) throw 'please install jQuery parse plugin';
				$_ = $.parse($_);
			}
			$.each($_,function($k,$v){
				$(':input[name='+$k+']',$self).val($v);
			});
		}
	});
})(jQuery)

準備

〜の中でjQueryと先ほど作ったjquery.fillInForm.jsをロードします。

<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.min.js"></script>
<script type="text/javascript" src="./jquery.fillInForm.js"></script>
<!-- ↓なくても動きますがロードしてあるとテキストも渡せるようになります -->
<script type="text/javascript" src="./jquery.parse.js"></script>

使い方

オブジェクトを渡すだけです。idではなくnameですのでご注意ください。

//基本的な使い方
$('form').fillInForm({
  name1 :'value1',
  name2 : value2'
});

jquery.parse.jsと連動します。

//jquery.parse.jsがロードしてあればqueryっぽい文字列が渡せます
$('form').fillInForm('name1=value1&name2=value2');

//もちろんparseメソッドの返り値をそのまま渡してもOK
var $query = $.parse();
$('form').fillInForm($query);