我有一个javascript函数,它接受包含引号的字符串并在输入字段中显示。但是这个函数不接受引号后面的字符串
function searchFormatter(cellvalue, options, rowObject) {
return '<input id="txt' + cellvalue + '" type="text" disabled="disabled" value="' + cellvalue + '" />';
}
EG。 21“英寸==&gt; 21
无论如何,我可以将引号传递给函数并打印它们。我不想替换他们。我想显示他们。
答案 0 :(得分:5)
您必须转义特殊HTML字符,例如"
,<
,>
。
例如:
function searchFormatter(cellvalue, options, rowObject) {
cellvalue = cellvalue.
replace(/&/g,'&').
replace(/>/g,'>').
replace(/</g,'<').
replace(/"/g,'"');
return '<input id="txt' + cellvalue + '" type="text" disabled="disabled" value="' + cellvalue + '" />';
}
答案 1 :(得分:1)
您必须传递cellValue的值,如下所示 ( var cellValue = 21“(应该以21为后跟&amp; quot后跟;(分号))
您可以在输入框中获取 21“的值。 希望这会有所帮助。
答案 2 :(得分:1)
您需要替换“with&amp; quot;
使用此辅助方法:
function htmlEncodeInputDisplay(string) {
if (string == null || jQuery.trim(string) == "") return string;
string = string.replace(/</g, "<");
string = string.replace(/>/g, ">");
string = string.replace(/&/g, "&");
string = string.replace(/ /g, " ");
string = string.replace(/\"/g, """);
return string;
}
答案 3 :(得分:0)
您可以使用Javascript函数 escape()对sting进行编码,然后使用unescape()对其进行解码(如果需要)。
您也可以手动转义它们,如下例所示。
var name = prompt("Please write your \'name\' in the box\r Write it with \"quotes\" like this.","");
使用\转义的报价作为字符串的一部分进行。
答案 4 :(得分:0)
在创建输入元素时转义该值,然后取消该值以正确显示它。
简化示例:
function make_input(val) {
return '<input value="' + escape(val) + '" />';
}
// add to dom
$('input').each(function(){
var current_value = $(this).val()
var new_value = unescape(current_value)
$(this).val(new_value)
})