我有一個表單,在模式彈出的Ajax表單中有一個複選框,當用戶在文本框中輸入數據並按提交時,發佈的值和Modal已關閉。但是,如果用戶在文本框中輸入一個值,然後檢查複選框,表單將提交,並且如果複選框被選中,視圖將在這次返回到模式。我需要離開表單,以便用戶可以提交另一個條目。問題是,文本框保持其狀態,這是我想要的,複選框也是如此,但是,複選框的底層值將切換回假,即使複選框仍然被選中...
有點難倒。複選框未在部分視圖中綁定AJAX回發
@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 Post之後CheckBox仍然被選中,但JS Script Check顯示false?如果我註釋掉CloseModal並查看代碼,Value設置爲False?但是如果我再次發佈它通過爲真? 再次驗證ChkForCheckBox()並顯示錯誤.....
我錯過了一些東西。
我相信我解決了它,但仍然不知道爲什麼。如果我在複選框中添加一個類,並按照預期的方式對類執行完全相同的.prop('checked'),我想它與CheckBoxFor()的工作方式有關。 –
因此,當你第二次發佈(在複選框選中後發佈一次)是控制器上的值是真還是假? – JB06
如果複選框被選中,第二個帖子中發回的值爲True,但如果我在Jquery上使用複選框並且它是ID,它將返回false。即使來源顯示它的錯誤。 –