我从我的视图中获取数据,并使用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();
如何设置此功能,在数据库中显示为1
或0
?
我假设使用,.val()
将不起作用。
出于某种原因,如果我单击是,则返回0
,如果我单击否,它仍会返回0
,即使在我的html中我得到了true
/ {{ 1}}。
答案 0 :(得分:3)
:checked
伪类选择器适用于复选框和单选按钮。这会将boolean
属性的checked
值转换为0
或1
:
var returnRequired = $('#ReturnRequired').is(':checked') ? 1 : 0;
您也可以使用双波浪形解决方案,但我不认为潜在的小性能增益值得缺乏可读性。
另一个解决方案是使用Number
构造函数,或使用带有一元+
的隐含转换。这些是等价的。
var returnRequired = new Number($('#ReturnRequired').is(':checked'));
var returnRequired = +$('#ReturnRequired').is(':checked');
您可以依赖此解决方案,因为ECMAScript standard指定true
转换为1
而false
转换为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