2

すべての開発者が望むように、私は自分のコードを短くシンプルにしたかったのです。しかし、理にかなっています。

この編集プロファイルフィールドには、いくつかのフィールド、約10個のテキストボックスと2個のラジオボタンがあります。

簡単なログインフォームで、次のようにユーザー名とパスワードの値を取得できます。

$("#username")そして、それらをそれぞれ$("#password") 変数に割り当てます。username password

それは次のようになります:(ajaxで)

$.ajax({
    url : some_url,
    data: {
        username : username,
        password : password
    success : something
    }
});

しかし、複数のフィールドがある場合、それらすべての割り当てがあり、コードが非常に乱雑になりたくない場合はどうなりますか。

だから私はそれらの入力IDに基づくキーと値のペアを持つというアイデアを思いつきます

var object;
$("#formUpdate:input").each(function(){
      var key = $(this).attr('id');
      var value = $(this).val();
      object.key = value;
});

質問、私は何を見逃しているのですか、私はそれを機能させることはできませんが、それを行うためのより良い方法はありますか?ハードコーディングする方がはるかに優れていると思いますか。

どうもありがとう!今日は私の誕生日です。

4

2 に答える 2

3

オブジェクトに動的キーを追加するために間違った構文を使用しています。角かっこ表記が必要です["string"]

var obj = {};
$("#formUpdate :input").each(function(){ 
    var key = $(this).attr('id'); 
    var val = $(this).val(); 
    obj[key] = val; 
});

あなたはただできるはずですが:

var obj = $("#formUpdate").serialzeArray();

入力にも名前属性があると仮定します。

編集:入力セレクターにもスペースがありませんでした。

于 2012-10-29T17:46:40.433 に答える
1

それらをキーとして渡す必要があります:値:ペア..これを試してください

オブジェクトの配列として保存する場合..

var arr = [];
$("#formUpdate :input").each(function() {
    arr.push( { $(this).attr('id') : $(this).val() }) ;
});​
于 2012-10-29T17:45:56.607 に答える