javascript - 无法使用 Jquery 获取 @Html.RadioButtonFor 的值,已检查属性未更改

标签 javascript jquery html asp.net-mvc razor

使用 MVC 5,我在 Razor View 上有一个 bool 属性的单选按钮,一个简单的是或否选择,如下所示:

<td class="warning">@Html.LabelFor(model => model.HeartCondition)</td>
<td class="info">Yes @Html.RadioButtonFor(model => model.HeartCondition, true, new { @class = "radio" })</td>
<td class="info">No @Html.RadioButtonFor(model => model.HeartCondition, false, new { @class = "radio"})</td>

<a role="button" class="btn btn-primary btnnav" id="SaveParQ">Save & Next</a>

当我将 true 或 false 值传递给 View 时,相应的单选按钮被选中,并且具有 checked="checked"属性。然后我想保存值而不必重新加载页面,这是我尝试使用 jquery 做的,这就是问题所在。如果我向 View 传递一个真值,"is"单选按钮被选中并具有选中的属性,但是当我单击“否”单选按钮时,“否”按钮确实被选中,但选中的属性仍然是在"is"按钮上,并且不会更改为“否”按钮,这是我认为它会完成的。

我的 jquery 看起来像这样:

//Save ParQ
$("body").on("click", "#SaveParQ", function (e) {
    preventDefaultAction(e);
    var url = GetUrlPath() + "/PreAssessment/SaveParQ";
    var parQId = $("#ParQId").val();
    var heartCondition = false;
    if ($("input[name='heartCondition']:checked").val()) {
        heartCondition = true;
    }

    var viewModel = new ParQViewModel(parQId, heartCondition);
    $.ajax({
        type: "POST",
        cache: false,
        url: url,
        data: JSON.stringify(viewModel),
        contentType: 'application/json; charset=utf-8',
        success: function (result) {
            if (result.success === true) {
                showFullScreenLoadMask(false);
                $("#ParQId").val(result.ParQId);
            }
        },
        error: function (responseText, textStatus, errorThrown) {
            alert('Error - ' + errorThrown);
        }
    });
});

我不确定我的 jquery 是否正确,但如果正确,它不会注册我将"is"更改为“否”,因为已检查的属性保留在原始元素上。任何人都可以帮助以正确的方式实现我想要做的事情吗?

最佳答案

去掉下面几行代码

var heartCondition = false;
if ($("input[name='heartCondition']:checked").val()) {
    heartCondition = true;
}

并替换为

var heartCondition = $("input[name='HeartCondition']:checked").val();

这将根据所选的单选按钮将值设置为 truefalse

关于javascript - 无法使用 Jquery 获取 @Html.RadioButtonFor 的值,已检查属性未更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37299901/

相关文章:

javascript - 在 javascript 中的元素中添加/删除类名之间切换

javascript - 单击提交按钮后如何使用nodejs刷新页面

javascript - Ctrl-Z/Y 使浏览器聚焦于最近更改的输入

javascript - 将 jquery ajax 请求插入数组时出错

javascript - 从列表中删除特定名称

javascript - 如何从多个 kaminari 页面中选择全部

javascript - jQuery + 客户端模板 = "Syntax error, unrecognized expression"

javascript - 如何仅在 bootstrap IE 中调整导航栏的大小?

html - 如何制作页脚?

html - CSS : set the height of inner div just by using 'top' and 'bottom' propreties