2013-08-21 21 views
0

我做這樣的事情:人物 - 的JavaScript

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

文本框的值,真可謂是「第1部分」和缺少第2部分。即空白之後的字符。這裏有什麼錯誤?

回答

5

您應該添加"到你的價值:

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

否則,你的瀏覽器解釋「第2部分」要像「階級」或「大小」的新屬性。

1

一個改進可能是使用jQuery .attr()函數,因爲它會自動轉義HTML實體,如"。建議這樣做,除非您確定您的消息不包含任何",<>

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

現在你很安全。