Неправильное поведение в теге {{each}} шаблонов jQuery в Internet Explorer? - PullRequest
0 голосов
/ 07 мая 2011

Я создаю страницу с использованием шаблонов jQuery, но в IE 8 получаю противоречивое поведение.

У меня есть элемент checkbox внутри тега {{each}}, но IE выдает ошибку, когда я пытаюсьдобавить строку к идентификатору.

Вот фрагмент HTML:

<script id="filters-template" type="text/template">
<div id="CoinsuranceFilters" class="filters">
<h4><label><input type="checkbox" id="checkall_coinsurance" onclick="checkClass(this, 'coinsurance_items');" class="checkall" /> Coinsurance</label></h4>
{{each Coinsurance}}
<div class="filteritem">
    <label><input type="checkbox" id="${'Coinsurance_' + id}" {{if IsSelected}} checked{{/if}} class="coinsurance_items"/> ${ItemText}</label>
</div>
{{/each}}
</div>
</script>

IE сообщает: 'id' не определен

Если я изменю поле id на id = "$ {id}"ошибка исчезает (хотя, по-видимому, она отображает 2 флажка для каждого 1, который должен).

Это работает без проблем в Chrome и FF 4

Эта страница использует jquery 1.5.2 & jquery-ui 1.8.12

Здесь передается объект JSON, который передаетсяв шаблон:

{
    "IndividualQuoteID": "539b9d05-0c78-4c27-b238-9edaaabfb389",
    "Coinsurance": [
        {
            "id": 267,
            "ID": 267,
            "IsSelected": true,
            "ItemText": "70%"
        },
        {
            "id": 266,
            "ID": 266,
            "IsSelected": true,
            "ItemText": "80%"
        },
        {
            "id": 265,
            "ID": 265,
            "IsSelected": true,
            "ItemText": "90%"
        },
        {
            "id": 264,
            "ID": 264,
            "IsSelected": true,
            "ItemText": "100%"
        }
    ]
}

(значения id и ID присутствуют намеренно. Эта ошибка возникает с любым ключом, который я пытаюсь объединить со строкой внутри блока {{each}})

1 Ответ

1 голос
/ 07 мая 2011

Я никогда не использовал шаблоны Jquery, но из того, что я вижу в вашем коде, не должно быть так:

<script id="filters-template" type="text/template">
<div id="CoinsuranceFilters" class="filters">
<h4><label><input type="checkbox" id="checkall_coinsurance" onclick="checkClass(this, 'coinsurance_items');" class="checkall" /> Coinsurance</label></h4>
{{each Coinsurance}}
<div class="filteritem">
    <label><input type="checkbox" id="Coinsurance_${id}" {{if IsSelected}} checked{{/if}} class="coinsurance_items"/> ${ItemText}</label>
</div>
{{/each}}
</div>
</script>

Я не вижу, что такое синтаксис $ {'Coinsurance_' + id}будет относиться к.Если я правильно понял, вы хотите, чтобы флажок имел html id 'Coinsurance_267'.

...