Sud*_*ere 4 html javascript jquery
我有一个填写了<p>标签的地址。单击编辑按钮后,我将该<p>标签地址转换为<textarea>允许用户编辑它。但是每当用户单击编辑时,<p>就会从标签中获取地址文本,<textarea>而不会换行。
HTML 标记:
<a href="" class="editShipAdd">Edit</a>
<a href="" class="saveShipAddBtn">Save</a>
<table class="table shipping-address-table">
<tbody>
<tr>
<td>
<div class="jumbotron custjumbo">
<p class="datainfo" id="shipping_address">123, Sample Street,<br>
Sample Sample Road,<br> Bangalore, <br>Karnataka - 123xyz</p>
</div>
</td>
</tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
JS代码:
$(".editShipAdd").on("click", function(e){
e.preventDefault();
var datasets = $('.shipping-address-table>tbody>tr td').find(".datainfo");
var savebtn = $('.saveShipAddBtn');
datasets.each(function(){
var theid = $(this).attr("id");
var newid = theid+"-form";
var currval = $(this).text().replace(/\r?\n/g, '<br />');
console.log(currval);
$(this).html('<textarea name="'+newid+'" id="'+newid+'" value=""
class="form-control">'+currval+'</textarea>');
});
$(this).css("display", "none");
savebtn.css("display", "inline-block");
});
$(".saveShipAddBtn").on("click", function(e){
e.preventDefault();
var elink = $(this).prev(".editShipAdd");
var datasets = $('.shipping-address-table>tbody>tr td').find(".datainfo");
datasets.each(function(){
var newid = $(this).attr("id");
var einput = $("#"+newid+"-form");
var newval = einput.val().replace(/\r?\n/g, '<br />');
console.log(newval);
einput.remove();
$(this).html(newval);
});
$(this).css("display", "none");
elink.css("display", "inline-block");
});
Run Code Online (Sandbox Code Playgroud)
为了看到这个问题,我在这里创建了一个小提琴演示
要获得换行符,请使用$(this).html()而不是$(this).text().
要在文本区域内使用换行符,请将 替换为 ASCII 等效项<br>。

这行:
var currval = $(this).text().replace(/\r?\n/g, '<br />');
Run Code Online (Sandbox Code Playgroud)
应该:
var currval = $(this).html().replace(/<br> ?/g, '
');
Run Code Online (Sandbox Code Playgroud)
更新了JSFiddle
| 归档时间: |
|
| 查看次数: |
5631 次 |
| 最近记录: |