我正在使用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();
}
答案 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
来访问存储的媒体资源;使用getItem
和setItem
的唯一好处是,您可以使用它来保存以其他方式保留的名称下的对象,例如length
,key
,{{1 },setItem
,getItem
和removeItem
。
做这样事情的原型是:
clear
然后您可以使用
检索它localStorage.setItem('nameOfMyValue', value);
答案 2 :(得分:0)
localStorage.myItem [0] =“”;
那是我解决问题的方法。