Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Ajax中捕获复选框值_Javascript_Jquery_Ajax_Asp.net Mvc 5 - Fatal编程技术网

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。同。道具“已检查”