Я пытаюсь сгенерировать серию флажков, которые обновят диапазон, чтобы отследить количество проверенных флажков (показывает что-то вроде «4 из 12 флажков»).Я создал функцию JavaScript updateSelected
, которая обрабатывает это, но для этого требуется идентификатор диапазона и класс флажков, поэтому я попробовал этот код для создания каждого флажка:
@Html.CheckBox(string.Format("contentprofilestate[{0}].selected", i),
new { onclick = "updateSelected('" + selectedSpanId + "', '" + checkboxClass + "')" })
При этом получается следующий HTML:
<input id="contentprofilestate_6__selected" name="contentprofilestate[6].selected"
onclick="updateSelected('StMarySpan', 'StMaryCheck')"
type="checkbox" value="true" />
Как получить обработчик события onclick
для рендеринга без экранирования апострофов?В качестве альтернативы, есть ли лучший способ выполнить эту задачу (если так, не стесняйтесь использовать jQuery в вашем предложении)?
Примечание re: Lester
Я создалНовый проект и создал этот вид, и он все еще избегал апострофов:
@{
ViewBag.Title = "index";
}
<h2>index</h2>
@Html.CheckBox(string.Format("contentprofilestate[{0}].selected", 0), new { onclick = "updateSelected('" + "test" + "', '" + "test2" + "')" })
Альтернативное решение
Я не смог понять, как сохранить апострофы отсбежал, поэтому я написал некоторую логику jQuery, чтобы делать то, что мне нужно, без какого-либо встроенного JavaScript:
jQuery(document).ready(function () {
jQuery(':checkbox').click(function () {
var clientHeader = jQuery(this).closest('.client-header');
var clientCheckedSpan = clientHeader.find('.client-checked');
var inputChecked = clientHeader.find('input:checked');
clientCheckedSpan.text(inputChecked.length);
});
});