Javascript 在Ajax中捕获复选框值
我在局部视图中有一个复选框Javascript 在Ajax中捕获复选框值,javascript,jquery,ajax,asp.net-mvc-5,Javascript,Jquery,Ajax,Asp.net Mvc 5,我在局部视图中有一个复选框 <div>Full time: @Html.CheckBoxFor(model => model.FullTime, new { htmlAttributes = new { id = "txtIsFullTime" } })</div> 在相同的局部视图中,我有以下Ajax代码: <script> var urlAction = "@Url.Content("~/Treeview/_NewEmpThird")"; fu
<div>Full time: @Html.CheckBoxFor(model => model.FullTime, new { htmlAttributes = new { id = "txtIsFullTime" } })</div>
在相同的局部视图中,我有以下Ajax代码:
<script>
var urlAction = "@Url.Content("~/Treeview/_NewEmpThird")";
function AjaxGoodRedirect(urlAction) {
console.log(urlAction);
$.ajax({
type: "POST",
url: urlAction,
data: JSON.stringify({ FullTime: $("#txtIsFullTime").val() }), //data: JSON.stringify({ ID: 1, Forename: "FName", Surname: "SName" }),
datatype: "JSON",
contentType: "application/json; charset=utf-8",
success: function (returndata) {
if (returndata.ok)
$("#detailView").load(returndata.newurl);
else
window.alert(returndata.message);
}
}
);
}
但它每次都会传回一个错误的值
我对@Html.EditorFor使用了相同的方法,没有问题-有人能帮我指出哪里出了问题吗
谢谢:
编辑
认为问题在于新的html属性=new。。删除并更正了错误
div>Full time:@Html.CheckBoxFormodel=>model.FullTime,新的{id=txtFullTime}
然后使用
数据:JSON.stringify{ID:$txtFullTime.is':选中“?1:0}
不返回1或0。这是我在构建的表单映射器中使用的:
switch (field.prop('type')) {
case 'checkbox':
newVal = this.checked;
break;
default:
newVal = field.val();
break;
}
因此,您可能必须将$txtIsFullTime.val更改为$txtIsFullTime.get0.checked或$txtIsFullTime.is':checked'
更新
我认为值1或0是因为Html.CheckBoxFor生成2个输入。一个表示值0 | 1,一个表示状态true | false。这是MVC级别的要求
我猜:
id = "txtIsFullTime"
$("#textIsFullTime")
ID不匹配它在HTML中是txtIsFullTime,而不是在ajax中是textIsFullTime。如果下一票只是基于ID不匹配,请更正ID,然后使用.val。。。只是说…嗨,我没有降级。是的,你的拼写是对的,我之前已经纠正了,但仍然不起作用。checked启动了一个语法错误,而第二个似乎也没有捕获它,因为仍然返回false。同。道具“已检查”