javascript中带有空格的字符串

时间:2013-05-21 13:21:50

标签: javascript html

我有一个字符串“魔术词”。我需要将它用作javascript生成的html复选框中的值。

在javascript中

var itemValue= "Magic task";
var opt = "<input type='checkbox' name='test' id='test' value="+ itemValue+ "/>"+itemValue+ "<br />";
alert(opt); 
$(optionDiv).append(opt);

在警告中它显示的是实际值,但在提交表单后,我只得到第一个单词作为值。它忽略了第二个单词。

由于 拉维康德

3 个答案:

答案 0 :(得分:6)

您需要用单引号包装值:

"<input type='checkbox' name='test' id='test' value='" + itemValue + "' />"

答案 1 :(得分:1)

如果不使用引号,则属性值将以空格结尾。您呈现的字符串显示为

<input type='checkbox' name='test' id='test' value=Magic Word />

所以解析器看到了

value=Magic

和没有值的属性Word。你可以看到上面帖子中的着色。

您需要在值

周围添加单引号
var opt = "<input type='checkbox' name='test' id='test' value='" + itemValue + "' />"+ itemValue+ "<br />";
                                                              ^                 ^

这在哪里失败?如果您的字符串中有'。您需要添加替换方法并将其交换为@apos;

itemValue = itemValue.replace(/'/g,"@apos;"); 

答案 2 :(得分:1)

如果您正在使用jQuery(因为我在您的代码中看到$的用法),最好使用jQuery本身:

var itemValue= "Magic Word";
var opt = $('<input>').attr({
    type: 'checkbox',
    name: 'test',
    id: 'test',
    value: itemValue
});

它可以防止任何更加严重的错误,例如,如果您的字符串中有'

var itemValue= "Magician's Word";