0

複数の人がアンケートに回答して更新できるようにしたい。再送信時に各アンケート結果が上書きされないように、複数の人が名前に基づいてアンケートを保存できるようにする必要があります。各テキスト ボックスの出力 'person'.'name' = value に格納されているキーを取得しようとしています。代わりに undefined.name = value を取得しています

<p>
<label>Name:</label> <input name="MainName" type="text"/>
</p>

$('form').submit(function() {
 var person = $("#MainName").val();
 $('input, select, textarea').each(function() {
   var value = $(this).val(),
       name = $(this).attr('name');
       localStorage[person + "." + name] = value;

     console.log('stored key: '+name+' stored value: '+value);
});   
});

問題が上記に表示されない場合は、全体を以下に示します: http://jsfiddle.net/5sG8v/

4

3 に答える 3

2

undefined存在しない ID を参照しようとしているために返されます:入力MainNameフィールドnameid.MainName

<label>Name:</label> <input id="MainName" name="MainName" type="text"/>
于 2013-10-23T19:05:27.483 に答える
1

は、特定の属性#を持つ要素を選択するためのものです。idあなたinputには がありませんid

要素に を指定するか、属性idに基づいて選択できます。name

$('input[name="MainName"]');
于 2013-10-23T19:06:52.577 に答える
1

$("#MainName").val();ID を持つ要素の値を取得するために使用しましたMainName
#ID を持つ要素にアクセスするために使用されますが、HTML でその ID を定義していません。

したがって、テキストボックスの ID 属性を次のように定義します。

<label>Name:</label> <input id="MainName" name="MainName" type="text"/>
于 2013-10-23T19:12:06.797 に答える