0

我有一个字符串“魔术词”。我需要将它用作由 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);

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

谢谢拉维康德

4

3 回答 3

6

您需要用单引号将值括起来:

"<input type='checkbox' name='test' id='test' value='" + itemValue + "' />"
于 2013-05-21T13:23:26.923 回答
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;"); 
于 2013-05-21T13:26:12.140 回答
1

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

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

它将防止任何进一步的错误,例如,如果您'的字符串中有一些错误:

var itemValue= "Magician's Word";
于 2013-05-21T13:28:22.003 回答