localStorage:Textarea在刷新时显示“未定义”

时间:2016-07-29 14:26:03

标签: javascript jquery local-storage

我正在使用LocalStorage来记住字段的值。但是我注意到,当我的可选textarea字段留空时,它会显示一条消息“未定义”。真的应该只是占位符。未定义文本来自何处以及如何解决此问题?

文字区

<textarea name="note" id="note" form="order" placeholder="Add your note..."></textarea>

loadStorage功能

function loadSettings() {
    $('#note').val(localStorage.setnote);
}

function saveSettings() {
    localStorage.setnote = $('#note').val();
}

3 个答案:

答案 0 :(得分:3)

undefined正在显示,因为localstorage对象下没有属性'setnote'。

尝试使用此代替

function loadSettings() {
    $('#note').val(localStorage.setnote || '');
}
如果未定义localStorage.setnote,则||将使用null

如果localStorage.setnote的值为0,则此值将替换为''。为避免这种情况,您可以执行以下操作:

function loadSettings() {
    if(localStorage.setnote != null && typeof localStorage.setnote != 'undefined') {
        $('#note').val(localStorage.setnote || '');
    }
}

答案 1 :(得分:1)

在您的情况下,您将拥有以下代码:

function loadSettings() {
    $('#note').val(localStorage.getItem("setnote") || defaultValue); // The "|| defaultValue" is probably what you're looking for
}

function saveSettings() {
    localStorage.setItem("setnote", $('#note').val());
}

如果defaultValue中没有setnote,则将localStorage替换为您要设置的值(例如,用户第一次加载页面时,不存在任何设置然而)。这将阻止函数返回undefined

请注意,您可以继续使用localStorage['setnote']localStorage.setnote来访问存储的媒体资源;使用getItemsetItem的唯一好处是,您可以使用它来保存以其他方式保留的名称下的对象,例如lengthkey,{{1 },setItemgetItemremoveItem

做这样事情的原型是:

clear

然后您可以使用

检索它
localStorage.setItem('nameOfMyValue', value);

答案 2 :(得分:0)

localStorage.myItem [0] =“”;

那是我解决问题的方法。