MVC4 jquery для отмены выбора Html.CheckboxListFor
Я использую jquery, чтобы показать и скрыть разделы страницы поиска. У меня есть Html.Textbox и Html.CheckboxListFor, который я показываю и скрываю на основе ввода формы (когда форма отправлена, она будет показывать / скрывать текстовое поле, если в текстовое поле ничего не введено, и то же самое относится к разделу флажка, если нет Флажки выбираются при отправке формы. Флажок скрывается при повторном отображении страницы. Я также использую функцию jquery .click, чтобы при необходимости показать / скрыть эти параметры поиска.
Код для функций щелчка:
$('b.Text').click(function () {
$('div.TSearch').slideDown(200);
$('div.KSearch').slideUp(200);
});
$('b.Keyword').click(function () {
$('div.KSearch').slideDown(200);
$('div.TSearch').slideUp(200);
$('#SearchString').val('');
});
$('b.Both').click(function () {
$('div.KSearch').slideDown(200);
$('div.TSearch').slideDown(200);
});
@using (Html.BeginForm())
{
<div>
<!-- For styling the check boxes & text for the keywords section -->
<style type="text/css">
label {
display: inline-block;
padding: 5px;
font-size:small;
}
input[type="submit"] {
margin-left: 0px;
}
</style>
@{ var htmlListInfo = new HtmlListInfo(HtmlTag.table, 5, null,
TextLayout.Default, TemplateIsUsed.No);
}
@Html.CheckBoxListFor(model => model.KeywordIDs,
model => model.Keywords,
model => model.KeywordId,
model => model.Name,
model => model.SelectedKeywords,
htmlListInfo
)
</div>
}
РЕДАКТИРОВАТЬ
ViewModel:
public class SearchCasefileViewModel
{
public Casefile Casefile;
public Keyword Keyword;
public IEnumerable<Casefile> Casefiles { get; set; }
public IEnumerable<Keyword> Keywords { get; set; }
public IList<Keyword> SelectedKeywords { get; set; }
public List<string> KeywordIDs { get; set; }
}
Как вы можете видеть, когда вы нажимаете на Ключевое слово, оно скрывает текстовое поле и очищает текстовое поле. Я пытался реализовать то же самое для флажков с помощью Model.SelectedKeywords.Clear(), но это не обновляет представление страницы, поэтому флажки по-прежнему установлены. Есть ли аналогичный вызов, который я могу использовать, чтобы снять флажки?
1 ответ
Для решения на стороне клиента, чтобы снять все флажки, вы можете использовать это, когда раздел флажок скрыт:
// this selector is a bit general and you should use an id or class tagged on the
// checkbox section to make it more specific
$('form:checkbox').prop('checked', false);