您好我在视图中包含了给定的代码
= form_for @order, :url => update_express_shipping_path,:remote=> true, :html => { :id => "shippingDetails" } do |form|
= form.radio_button :express_shipping, true, :value => true, :id => 'shipping_method4', :name => 'shipping_method'
Express Shipping
.checkOrder{:value=> @order.id}
并在我的js文件中包含
$('#shipping_method4').click(function(){
if($(this).is(':checked')){
alert ('123')
$.ajax({
url: '/update_express_shipping',
type: 'POST',
data: {
'id': $('.checkOrder').attr('value'),
'express_shipping': $(this).val()
},
contentType: 'json'
});
}
})
并在我的控制器中
def update_express_shipping
byebug
a = '123'
end
现在当我点击单选按钮并进行检查时,我没有在控制器中接收数据,它只给出了这个 PARAMS {“controller”=>“spree / checkout”,“action”=>“update_express_shipping”}
请告诉我错误的地方。提前谢谢。
答案 0 :(得分:1)
对于单选按钮,您应该使用change()而不是click()
替换
$('#shipping_method4')。点击(function(){
与
$('#shipping_method4')。change(function(){
答案 1 :(得分:1)
您可以尝试使用$.post
的语法$.post('/update_express_shipping', { 'id': $('.checkOrder').attr('value'),
'express_shipping': $(this).val()})