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:MainNamename你的输入字段,而不是id.Give it an ID of MainName,或者任何你喜欢的东西:

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

#用于选择具有给定id属性的元素。你input没有id.

你可以给元素一个id, 或 select 基于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 回答