首页 > 解决方案 > 如果在 html 片段中,则使用一行 javascript

问题描述

此 fieldHTML 变量用于在用户按下“添加字段”按钮时创建动态字段。我将这些动态字段值保存在 localStorage 中。刷新页面后,我想检查此输入是否已保存值,如果是,则显示此输入。问题是,使用在 value 属性中定义的这一行 if 语句,我的输入即使具有值也没有显示。我定义输入值的那一行有什么问题?我相信这是引号的问题,因为当我尝试在 console.log 中调试这一行时,我的文本值是空的。我在控制台中没有收到任何错误。

var fieldHTML = '<div> \
<input type="text" name="name[]" class="form-control" placeholder="Enter name" \
            value="'+(localStorage.getItem(array['name'][i])) ? localStorage.getItem(array['name'][i]) : 'empty' +'" /></div>';

标签: javascripthtmlquotes

解决方案


  1. \多行支持仅限于仅支持 ES5 的浏览器。
  2. 'empty' +'"文字的意外字符串连接。
  3. if放在带括号的框架中((localStorage.getItem(array['name'][i])) ? localStorage.getItem(array['name'][i]) : 'empty')

修改后的脚本:

var fieldHTML = '<div><input type="text" name="name[]" class="form-control" placeholder="Enter name" value="'+ ((localStorage.getItem(array['name'][i])) ? localStorage.getItem(array['name'][i]) : 'empty') + '" /></div>';

推荐阅读