San*_*cci 4 jquery escaping utf-8
我正在使用一个简单的jquery代码,它将HTML代码形成一个标记,然后将这些内容放入表单输入中
<td class="name_cat" ><span class="name_cat">It's a "test" </span> (5)</td>
Run Code Online (Sandbox Code Playgroud)
jquery获取内容span.name_cat并将其返回It's a "test".因此,当我将其打印成输入时,它就变成了
<input value="It's a "test"" />
Run Code Online (Sandbox Code Playgroud)
您可以想象只会显示为It's a,以下双引号将关闭值标记.保存原始字符串而不在输入中显示utf8代码的诀窍是什么?
Jquery代码
$(".edit_cat").click(function(){
tr = $(this).parents("tr:first");
id_cat = $(this).attr("id");
td_name = tr.find(".name_cat");
span_name = tr.find("span.name_cat").html();
form = '<form action="/admin/controllers/edit_cat.php" method="post" >'+
'<input type="hidden" name="id_cat" value="'+id_cat+'" />'+
'<input type="text" name="name_cat" value="'+span_name+'" />'+
'<input type="submit" value="save" />'+
'</form>';
td_name.html(form);
console.log(span_name);
}
);
Run Code Online (Sandbox Code Playgroud)
我基本上不需要html()解码Utf8
我相信这应该为你照顾它.
var span_name = tr.find("span.name_cat").html().replace(/"/g, """);
Run Code Online (Sandbox Code Playgroud)
示例: http ://jsfiddle.net/yzthA/
另外,如果没有,请不要忘记声明变量var.
您可以按照现在的方式构建表单,但使用jQuery的上下文遍历表单对象
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.js"></script>
<script type="text/javascript">
$(function() {
$('#go').click(function() {
var tester = $('<div></div>').html('It's a "test"');
var form = $('<form action="/admin/controllers/edit_cat.php" method="post" >' +
'<input type="hidden" name="id_cat" />' +
'<input type="text" name="name_cat" />' +
'<input type="submit" value="save" />' +
'</form>');
$(':hidden:first', form).attr('value', tester.text());
$(':text:first', form).attr('value', "Some attribute");
$('#output').append(form);
});
});
</script>
<input id="go" type="submit" value="click"/>
<div id="output">
</div>
Run Code Online (Sandbox Code Playgroud)
我在这里做的是将你的表单html输入包装在jQuery对象中form.然后,您可以使用很少使用的jQuery形式查询该对象上下文中的项:
jQuery(selector,[context])
selector:包含选择器表达式
上下文的字符串:用作上下文的DOM元素,Document或jQuery
编辑:我创建了一个tester对象并将内容设置为您的html示例.然后,当我在隐藏输入中设置值时,我调用.text()以获取非html表示.价值与您预期的相同.
<form action="/admin/controllers/edit_cat.php" method="post">
<input type="hidden" name="id_cat" value="It's a "test"">
<input type="text" name="name_cat" value="Some attribute">
<input type="submit" value="save">
</form>
Run Code Online (Sandbox Code Playgroud)
但是你必须在后端解码这个html.这可能是你能做的最好的,因为XML不允许"转义"引用"\"this\"".规范要求报价转义"this".
| 归档时间: |
|
| 查看次数: |
24152 次 |
| 最近记录: |