2

我有一个包含文本区域的模式。当用户输入一些文本然后提交模式时,模式关闭,我想将文本存储在 HTML 的隐藏字段中。

  1. 安全地从 textarea 中转义所有文本以存储在 HTML 属性中的最佳方法是什么?必须保留换行符。

  2. 如果用户再次打开模态框,我如何抓取存储在隐藏字段中的文本并将其原样放回 textarea 中,并加上换行符?

  3. 当用户提交表单时,如何再次规范化隐藏字段中的文本,以便可以使用原始表单或将其保存到数据库中,并带有换行符?

我对使用 JvaScript 存储 textarea 文本以最终将其传输到 PHP 的替代解决方案持开放态度。

4

2 回答 2

2

安全地从 textarea 中转义所有文本以存储在 HTML 属性中的最佳方法是什么?必须保留换行符。

使用.val()是最好的选择,它不会让 textarea 内容脱离隐藏的 value 属性。使用本机 Javascript.value也可以工作并且是安全的,.val()它只是一个包装器。

如果用户再次打开模态框,我如何抓取存储在隐藏字段中的文本并将其原样放回 textarea 中,并加上换行符?

当模态打开时:

// #mytextarea = the textarea on the modal
// #myhidden = the hidden on the main page
$('#mytextarea').val($('#myhidden').val()); // set the modal textarea to the value of the hidden

当模态关闭或“保存”时:

$('#myhidden').val($('#mytextarea').val());

当用户提交表单时,如何再次规范化隐藏字段中的文本,以便可以使用原始表单或将其保存到数据库中,并带有换行符?

您无需执行任何操作来保留新行。使用 Prepared Statement 只需将原始 post 值保存到数据库中。当您在某处的页面上输出值时,您可以<br />使用 PHP 的nl2br(). 仅当您输出到输入值以外的任何内容时,才需要转换新行。也不要忘记运行它htmlspecialchars()以防止 XSS。

于 2013-06-21T11:54:06.073 回答
0

Hope this is what you are looking for.

Here is the JSFiddle Check Out : http://jsfiddle.net/ganeshprabhu1994/THPVa/2/

HTML:

    <textarea id="ta" rows="10" columns="20">
 173-B,Perambalur Road,
 Near Water Tank,
    Thuraiyur-621010
</textarea>
<input type="button" id="cut" value="Cut" />
<input type="button" id="paste" value="Paste" />
<input type="hidden" id="hdn1" value="" />

Script:

$(function(){
$('#cut').click(function(){
    $('#hdn1').val($('#ta').val());
    $('#ta').val("");
});
$('#paste').click(function(){
    $('#ta').val($('#hdn1').val());
});
});
于 2013-06-21T12:02:59.847 回答