附加输入属性值与文本值不同

时间:2013-07-15 12:47:23

标签: jquery

在循环中我从json获取值,并在输入复选框中输入值和文本,但是我得到的错误是outupt,它与属性值的文本值不同

我的循环:

$.map(data["allLocales"], function(value, i){
    if(i % 5 === 0 ){
        col0 += "<label><input value="+ value.name +" type='checkbox' />"+value.name+"</label>"
    } else if(i % 5 === 1) {
        col1 += "<label><input value="+ value.name +" type='checkbox' />"+value.name+"</label>"
    } else if(i % 5 === 2) {
        col2 += "<label><input value="+ value.name +" type='checkbox' />"+value.name+"</label>"
    } else if(i % 5 === 3) {
        col3 += "<label><input value="+ value.name +" type='checkbox' />"+value.name+"</label>"
    } else if(i % 5 === 4) {
        col4 += "<label><input value="+ value.name +" type='checkbox' />"+value.name+"</label>"
    }
})

错误的htmls示例:

<label class="blue"><input value="Italian" type="checkbox">Italian</label>
<label class="blue"><input value="Italian" (italy)="" type="checkbox">Italian (Italy)</label>
<label class="blue"><input value="Italian" (switzerland)="" type="checkbox">Italian (Switzerland)</label>

这里有什么问题..?我正在查看属性和文本值应该是相同的

1 个答案:

答案 0 :(得分:2)

您似乎没有正确引用您的结果,这在处理空格时尤其重要。例如,

    "<label><input value="+ value.name +" type='checkbox' />"+value.name+"</label>"

当用Italian (italy)喂养时,呈现为:

    <label><input value=Italian (italy) type='checkbox' />Italian (italy)</label>
然后根据HTML5规范将

(italy)视为空白属性,并将其赋值为""

要解决此问题,请在输出值的位置附近添加引号:

    "<label><input value='"+ value.name +"' type='checkbox' />"+value.name+"</label>"

现在应该呈现:

    <label><input value='Italian (italy)' type='checkbox' />Italian (italy)</label>

您可能还想考虑转义输出值中可能出现的任何'个字符,但是没有证据表明它们是您当前数据集的一部分。