如何将引号传递给javascript函数

时间:2011-12-28 11:30:46

标签: javascript input

我有一个javascript函数,它接受包含引号的字符串并在输入字段中显示。但是这个函数不接受引号后面的字符串

function searchFormatter(cellvalue, options, rowObject) {
    return '<input id="txt' + cellvalue + '" type="text"  disabled="disabled"  value="' + cellvalue + '" />';
}

EG。 21“英寸==&gt; 21

无论如何,我可以将引号传递给函数并打印它们。我不想替换他们。我想显示他们。

5 个答案:

答案 0 :(得分:5)

您必须转义特殊HTML字符,例如"<>。 例如:

function searchFormatter(cellvalue, options, rowObject) {
    cellvalue = cellvalue.
                replace(/&/g,'&amp;').
                replace(/>/g,'&gt;').
                replace(/</g,'&lt;').
                replace(/"/g,'&quot;');
    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(/&lt;/g, "<");
    string = string.replace(/&gt;/g, ">");
    string = string.replace(/&amp;/g, "&");
    string = string.replace(/&nbsp;/g, " ");
    string = string.replace(/\"/g, "&quot;");
    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)
})