0

我正在做这样的事情:

 var MESSAGE = "part1 part2";
  var fName = $("<input type=\"text\" class=\"fieldname\" size=35  disabled=disabled   value=" + MESSAGE + " />" );

文本框的值原来是“part1”并且缺少 part2。即空格后面的字符。这里有什么错误?

4

2 回答 2

5

你应该增加"你的价值:

var MESSAGE = "part1 part2";
  var fName = $("<input type=\"text\" class=\"fieldname\" size=35  disabled=disabled   value=\"" + MESSAGE + "\" />" );

否则,您的浏览器会将“part2”解释为新属性,如“class”或“size”。

于 2013-08-21T00:05:08.843 回答
1

一项改进可能是使用 jQuery.attr()函数,因为它会自动转义 HTML 实体,例如". 建议这样做,除非您绝对确定您的消息不包含任何",<>.

var MESSAGE = "part1 part2";
var fName = $("<input">).attr({
    type     : "text",
    class    : "fieldname",
    size     : "35",
    disabled : "disabled",
    value    : MESSAGE
});

现在你安全了。

于 2013-08-21T00:05:06.070 回答