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);
Другие вопросы по тегам