获取Javascript中单选按钮的true或false

Get true or false for radio button in Javascript

本文关键字:true false 单选按钮 Javascript 获取      更新时间:2023-09-26

我正在从视图中获取数据,并使用JavaScript进行保存。

HTML:

 <div>
     @Html.LabelFor(model => parts.ReturnRequired)
     @Html.RadioButtonFor(model => parts.ReturnRequired, true) Yes
     @Html.RadioButtonFor(model => parts.ReturnRequired, false) No
 </div>

这是我的JavaScript:

$(document).ready(function () {
    $('#btPartHeaderSave').click(function () {
        var status = $('#parts_Status').val();
        var partsRequestOrderNum = $('#parts_PartsRequestOrderNum').val();
        var custShipping = $('#parts.CustShipping').val();
        var shipAddress1 = $('#parts_ShipAddress1').val();
        var shipAddress2 = $('#parts_ShipAddress2').val();
        var shipCounty = $('#parts_ShipCounty').val();
        var postCode = $('#parts_ShipPostCode').val();
        var deliveryType = $('#parts_DeliveryType').val();
        var notes = $('#parts_Notes').val();
        //var returnRequired = $('#ReturnRequired').val() == true;
        $.ajax({
            url: $(this).attr('data-url'),
            //url: "/Parts/PartHeaderSave",
            type: "POST",
            data: JSON.stringify({
                status: status, 
                partsRequestOrderNum: partsRequestOrderNum, 
                custShipping: custShipping, 
                shipAddress1: shipAddress1, 
                shipAddress2: shipAddress2, 
                shipCounty: shipCounty, 
                postCode: postCode, 
                deliveryType: deliveryType, 
                notes: notes, 
                returnRequired: returnRequired
            }),
            dataType: "json",
            traditional: true,
            contentType: "application/json; charset=utf-8",
            success: function (data) {
                alert("You have sucessfully saved the header");
                alert(returnRequired);
                //   $('#alertSavePartOrderHeader1').addClass('in');
            },
            error: function () {
                alert("An error has occured!!!");
            }
        });
    });
});

我正在尝试获取ReturnRequired的值。

//var returnRequired = $('#ReturnRequired').val();

我该如何设置,以在数据库中显示为10?我假设使用.val()将不起作用。

出于某种原因,如果我单击"是",它将返回0,如果单击"否",它仍然返回0,即使在我的html中我得到了true/false

:checked伪类选择器适用于复选框和单选按钮。这将把checked属性的boolean值转换为01:

var returnRequired = $('#ReturnRequired').is(':checked') ? 1 : 0;

您也可以使用双波浪号解决方案,但我认为潜在的小性能增益不值得缺乏可读性。

另一种解决方案是使用Number构造函数,或者使用带有一元+的隐式强制转换。这些是等效的。

var returnRequired = new Number($('#ReturnRequired').is(':checked'));
var returnRequired = +$('#ReturnRequired').is(':checked');

您可以依赖此解决方案,因为ECMAScript标准指定将true转换为1,将false转换为0

var getter = $('#ReturnRequired').prop('checked');
var setter = $('#ReturnRequired').prop('checked',false);

试试这个:

var returnRequired = $('#ReturnRequired').is(':checked');

首先,检查单选按钮是否选中。从那时起,将布尔值转换为数字是非常直接的。

~~(true) //1
~~(false) //0