在Ajax中捕获复选框值
catching checkbox value in Ajax
我在部分视图中有一个复选框
<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);
}
}
);
}
但它每次都会传回一个False值。
我对@Html.EditorFor使用了同样的方法,没有遇到任何问题——有人能帮我指出哪里出了问题吗?
谢谢:)
编辑
认为问题出在新的html属性=new。。删除了(并更正了打字错误)
div>全职:@Html.CheckBoxFor(model=>model.FullTime,new{id="txtFullTime"})
然后使用
data:JSON.stringfy({ID:$("#txtFullTime").is(':checked')?1:0})
并且no返回1或0。
我的猜测:
id = "txtIsFullTime"
$("#textIsFullTime")
ID不匹配
这是我在构建的表单映射器中使用的:
switch (field.prop('type')) {
case 'checkbox':
newVal = this.checked;
break;
default:
newVal = field.val();
break;
}
因此,您可能需要将$("#txtIsFullTime").val()
更改为$("#txtIsFullTime").get(0).checked
或$("#txtIsFullTime").is(':checked')
更新
我相信1
或0
的值是因为Html.CheckBoxFor()
产生2个输入。一个用于值(0|1),一个用于状态(true|false)。这是MVC级别的要求。
更多信息
相关文章:
- 使用$.ajax发布多个复选框
- 在Ajax中捕获复选框值
- 如何在数据表中设置从Ajax响应选中的复选框
- 带有复选框的AJAX
- 使用springform时,如何在ajax/jquery中获取复选框值
- 从复选框 ajax php javascript 中检索值
- 获取 ajax 创建的复选框的值
- 只有选中的复选框才能执行进一步的 ajax 查询
- 使用 php 和 javascript Ajax 发送复选框值时遇到问题
- 如何通过jquery/ajax将复选框数据作为数组发送到php脚本
- 选中/取消选中时复选框ajax请求
- ajax后表单复选框更改时jquery ajax不工作
- 使用Knockout和复选框进行ajax调用的问题
- AngularJS-通过ajax提交带有复选框的表单
- PHP-AJAX复选框过滤器使用数据标记属性
- Jstree-Can't在AJAX调用中选中复选框,适用于经典调用.一个问题
- 根据 ajax 响应中的值设置复选框状态
- AJAX 调用 PHP 复选框问题
- 如何将选择复选框值动态传递给 ajax 调用变量动态发布到 php 变量
- 单击复选框时将此元素添加到收藏夹数组 + 后 Ajax 元素关系