在Javascript中获取单选按钮的真或假

时间:2015-03-20 10:18:11

标签: javascript jquery

我从我的视图中获取数据,并使用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 / {{ 1}}。

4 个答案:

答案 0 :(得分:3)

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

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

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

另一个解决方案是使用Number构造函数,或使用带有一元+的隐含转换。这些是等价的。

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

试试这个:

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

答案 3 :(得分:0)

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

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