JQuery密钥在本地存储中未定义

时间:2013-10-23 19:01:39

标签: javascript jquery local-storage

希望能够让多人参加调查,然后刷新等。需要多人根据他们的名字存储调查,以便在重新提交时不会覆盖每个调查结果。试图为每个文本框输出存储的密钥输出'person'。'name'= value。而是我得到一个undefined.name =值

<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/

3 个答案:

答案 0 :(得分:2)

您收到了undefined,因为您尝试引用不存在的ID:MainName是输入字段的name,而不是id.给它一个MainName的ID,或者你喜欢的任何内容:

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

答案 1 :(得分:1)

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

您可以为元素指定id,也可以根据name属性进行选择:

$('input[name="MainName"]');

答案 2 :(得分:1)

您已使用$("#MainName").val();获取ID为MainName的元素的值  #用于访问具有ID的元素,但您尚未在html中定义该ID。

所以定义文本框的ID属性,如下所示:

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