LocalStorage 不允许我保存富文本字段
LocalStorage does not allow me to save rich text fields
我正在尝试将表单数据保存到 localStorage 中。对于像文本框这样的常规 HTML 字段,这非常有效。但是我有几个富文本字段似乎无法保存它们的数据。
字段的 Razor 标记(我使用的是 MVC)
<div class="form-group">
@Html.LabelFor(model => model.Actions, htmlAttributes: new { @class = "control-label col-md-2" })
@Html.TextAreaFor(model => model.Actions, new { @class = "form-control", rows = "4" })
@Html.ValidationMessageFor(model => model.Actions, "", new { @class = "text-danger" })
</div>
HTML 以上生成的标记:
<div class="form-group">
<label class="control-label col-md-2" for="Actions">Actions</label>
<textarea class="form-control" cols="20" id="Actions" name="Actions" rows="4">
</textarea>
<span class="field-validation-valid text-danger" data-valmsg-for="Actions" data-valmsg-replace="true"></span>
</div>
这是从本地存储中保存/检索的代码。我在其他领域使用完全相同的方法并且效果很好。
//save
localStorage.setItem('Actions', document.getElementById('Actions').value);
//restore
var Actions = localStorage.getItem('Actions');
document.getElementById('Actions').value = Actions;
我试过使用 document.getElementById('Actions').textContent
而不是 .value
- 这似乎可以正确保存,但我仍然无法恢复文本。当我查看 localStorage
对象时,虽然它只在我的操作字段中报告以下文本:"<p><br></p>"
,除非使用 .textContent
,在这种情况下我会看到类似 <p>Test text<br></p>
我正在使用 Summernote 来提供富文本功能,我认为这可能是问题的原因,但我不确定该尝试什么。控制台完全没有报错。
我使用以下代码解决了这个问题
$('#Actions').summernote('code', Actions);
代替
document.getElementById('Actions').value = Actions;
这会将字段中的 html 代码直接放入带有所有格式等的 summernote 文本区域。我还能够使用 .actions
(.innerhtml
无效)
我正在尝试将表单数据保存到 localStorage 中。对于像文本框这样的常规 HTML 字段,这非常有效。但是我有几个富文本字段似乎无法保存它们的数据。
字段的 Razor 标记(我使用的是 MVC)
<div class="form-group">
@Html.LabelFor(model => model.Actions, htmlAttributes: new { @class = "control-label col-md-2" })
@Html.TextAreaFor(model => model.Actions, new { @class = "form-control", rows = "4" })
@Html.ValidationMessageFor(model => model.Actions, "", new { @class = "text-danger" })
</div>
HTML 以上生成的标记:
<div class="form-group">
<label class="control-label col-md-2" for="Actions">Actions</label>
<textarea class="form-control" cols="20" id="Actions" name="Actions" rows="4">
</textarea>
<span class="field-validation-valid text-danger" data-valmsg-for="Actions" data-valmsg-replace="true"></span>
</div>
这是从本地存储中保存/检索的代码。我在其他领域使用完全相同的方法并且效果很好。
//save
localStorage.setItem('Actions', document.getElementById('Actions').value);
//restore
var Actions = localStorage.getItem('Actions');
document.getElementById('Actions').value = Actions;
我试过使用 document.getElementById('Actions').textContent
而不是 .value
- 这似乎可以正确保存,但我仍然无法恢复文本。当我查看 localStorage
对象时,虽然它只在我的操作字段中报告以下文本:"<p><br></p>"
,除非使用 .textContent
,在这种情况下我会看到类似 <p>Test text<br></p>
我正在使用 Summernote 来提供富文本功能,我认为这可能是问题的原因,但我不确定该尝试什么。控制台完全没有报错。
我使用以下代码解决了这个问题
$('#Actions').summernote('code', Actions);
代替
document.getElementById('Actions').value = Actions;
这会将字段中的 html 代码直接放入带有所有格式等的 summernote 文本区域。我还能够使用 .actions
(.innerhtml
无效)