2016-11-30 2 views
0

У меня есть форма с полем и флажок в форме Ajax в модальном всплывающем окне, когда пользователь вводит данные в текстовое поле и нажимает, чтобы отправить значения, и Modal закрыт , Однако, если пользователь вводит значение в текстовое поле, а затем проверяет флажок, который будет отправлен формой, и представление вернется к модалу в это время, если флажок установлен. Мне нужно оставить форму, чтобы пользователь мог отправить другую запись , Проблема в том, что текстовое поле поддерживает свое состояние, чего я хочу, и флажок флажка, но Базовое значение флажка возвращается к false, даже если флажок по-прежнему установлен ...
Немного в тупике.CheckBox Not Binding в PartialView AJAX PostBack

@using (Ajax.BeginForm("SaveValues", "ControllerName", new AjaxOptions() 
{ HttpMethod = "Post", 
OnComplete = "ChkForCheckBox();" 
})) 
{ 
@Html.TextBoxFor(x => x.DDate) 
@Html.CheckBoxFor(x => x.Dupe) 
<button type="submit" >Save</button> 
} 

и в контроллере.

public void SaveValues(string DDate, bool Dupe) 
{ 
    var rslt = repo.Post(DDate); 
} 

JS.

function ChkForCheckBox(){ 
    var rslt = $('#Dupe').prop('checked'); 
    if(!rslt){ 
    //Close Modal 
} 
} 

Однако после отправки Ajax CheckBox по-прежнему проверяется, но проверка подлинности JS показывает false? Если я прокомментирую CloseModal и просмотрю код, значение Value равно False? но если я отправляю сообщение, это происходит как правда? Проверка ChkForCheckBox() снова, и он показывает false .....
Я чего-то не хватает.

+0

Я считаю, что решил, но все еще не уверен, почему. если я добавлю класс в этот флажок и сделаю то же самое .prop ('checked') в класс, он работает так, как ожидалось, я думаю, что он имеет какое-то отношение к способу работы CheckBoxFor(). –

+0

Итак, когда вы публикуете второй раз (после отправки один раз с установленным флажком) это значение на контроллере true или false? – JB06

+0

, если флажок установлен, значение, которое отправляется обратно во второй столбец, равно True, но если я взаимодействую с флажком, используя JQuery и его идентификатор, он возвращает false. Даже Источник показывает, что его ложь. –

ответ

0

Ваша проверка показывает false, потому что HTML-помощник CheckBoxFor() также генерирует скрытый ввод. Это значит, что значение все еще сохраняется, даже если флажок не установлен. Ваш чек должен просто найти скрытое входное значение вместо значения флажка.

+0

Я считаю, что вы правы, но странная часть состоит в том, что последующие сообщения имеют значение как истинное, хотя скрытое поле является ложным. –

+0

Пока флажок установлен, это значение будет иметь приоритет над любым значением, которое имеет скрытое поле – JB06