ajax 函数调用两次
ajax function calls twice
我创建了一个函数,通过该函数可以使用 click.the 上的加号和减号按钮来增加和减少产品的数量,功能非常好,但它调用了我按下的函数 twice.if加号按钮将数字增加 2..我不明白错误可能在哪里,因为我只想调用一个函数,increase/reduce 它由 one.here 是我的 plus/minus blade 文件中的代码
<div class="def-number-input number-input safari_only mb-0 w-100">
<button onclick="this.parentNode.querySelector('input[type=number]').stepDown()" class="itemupdate qtyminus" type="button" data-cartid="{{ $item['id'] }}">
<i class="fa fa-minus" aria-hidden="true"></i></button>
<input data-id={{ $item->id }} class="quantity" min="1" name="quantity[]" value="{{ $item['quantity'] }}" type="number">
<button onclick="this.parentNode.querySelector('input[type=number]').stepUp()" class="itemupdate qtyplus" type="button" data-cartid="{{ $item['id'] }}"><i class="fa fa-plus" aria-hidden="true"></i></button>
</div>
这是我在脚本文件中的 ajax 函数
$(文档).on('click','.itemupdate',function(){
if($(this).hasClass('qtyminus')){
var quantity=$(this).next().val();
// console.log("the quantity is ",quantity);
new_qty=parseInt(quantity)-1;
if(quantity<=1){
alert("item must be greater or equal to 1");
return false;
}else{
new_qty=parseInt(quantity)-1;
}
}
if($(this).hasClass('qtyplus')){
// console.log($(this).prev());
var quantity=$(this).prev().val();
new_qty=parseInt(quantity)+1;
}
var cartid=$(this).data('cartid');
$.ajax({
data:{"cartid":cartid,"quantity":new_qty},
url:'/updatecartitemquantity',
type:'post',
success:function(resp){
$("#appendcartitems").html(resp.view);
},error:function(){
alert("error");
}
})
})
这里是控制器中的函数
public function updatecartitem(Request $request){
$shippingcharges=shipping_charge::where('is_shipping',1)->get();
if($request->ajax()){
$data=$request->all();
// increment/decrement cart quantity items
Cart::where('id',$data['cartid'])->update(['quantity'=>$data['quantity']]);
$cartitems=Cart::usercartitems();
return response()->json
(['view'=>(string)view::make('frontend.product.cartitems')->with(compact('cartitems','shippingcharges'))
]);
}
}
在后端做加法和减法只发送递增或递减的类型因为
Cart::where('id',$data['cartid'])->update(['quantity'=>$data['quantity']]);
这里是在添加到前一个的同时更新数量。
<div class="def-number-input number-input safari_only mb-0 w-100">
<button class="itemupdate qtyminus" type="button" data-cartid="{{ $item['id'] }}">
<i class="fa fa-minus" aria-hidden="true"></i></button>
<input data-id={{ $item->id }} class="quantity" min="1" name="quantity[]" value="{{ $item['quantity'] }}" type="number">
<button class="itemupdate qtyplus" type="button" data-cartid="{{ $item['id'] }}"><i class="fa fa-plus" aria-hidden="true"></i></button>
</div>
我只需要删除这个 onclick 函数
我创建了一个函数,通过该函数可以使用 click.the 上的加号和减号按钮来增加和减少产品的数量,功能非常好,但它调用了我按下的函数 twice.if加号按钮将数字增加 2..我不明白错误可能在哪里,因为我只想调用一个函数,increase/reduce 它由 one.here 是我的 plus/minus blade 文件中的代码
<div class="def-number-input number-input safari_only mb-0 w-100">
<button onclick="this.parentNode.querySelector('input[type=number]').stepDown()" class="itemupdate qtyminus" type="button" data-cartid="{{ $item['id'] }}">
<i class="fa fa-minus" aria-hidden="true"></i></button>
<input data-id={{ $item->id }} class="quantity" min="1" name="quantity[]" value="{{ $item['quantity'] }}" type="number">
<button onclick="this.parentNode.querySelector('input[type=number]').stepUp()" class="itemupdate qtyplus" type="button" data-cartid="{{ $item['id'] }}"><i class="fa fa-plus" aria-hidden="true"></i></button>
</div>
这是我在脚本文件中的 ajax 函数
$(文档).on('click','.itemupdate',function(){
if($(this).hasClass('qtyminus')){
var quantity=$(this).next().val();
// console.log("the quantity is ",quantity);
new_qty=parseInt(quantity)-1;
if(quantity<=1){
alert("item must be greater or equal to 1");
return false;
}else{
new_qty=parseInt(quantity)-1;
}
}
if($(this).hasClass('qtyplus')){
// console.log($(this).prev());
var quantity=$(this).prev().val();
new_qty=parseInt(quantity)+1;
}
var cartid=$(this).data('cartid');
$.ajax({
data:{"cartid":cartid,"quantity":new_qty},
url:'/updatecartitemquantity',
type:'post',
success:function(resp){
$("#appendcartitems").html(resp.view);
},error:function(){
alert("error");
}
})
})
这里是控制器中的函数
public function updatecartitem(Request $request){
$shippingcharges=shipping_charge::where('is_shipping',1)->get();
if($request->ajax()){
$data=$request->all();
// increment/decrement cart quantity items
Cart::where('id',$data['cartid'])->update(['quantity'=>$data['quantity']]);
$cartitems=Cart::usercartitems();
return response()->json
(['view'=>(string)view::make('frontend.product.cartitems')->with(compact('cartitems','shippingcharges'))
]);
}
}
在后端做加法和减法只发送递增或递减的类型因为
Cart::where('id',$data['cartid'])->update(['quantity'=>$data['quantity']]);
这里是在添加到前一个的同时更新数量。
<div class="def-number-input number-input safari_only mb-0 w-100">
<button class="itemupdate qtyminus" type="button" data-cartid="{{ $item['id'] }}">
<i class="fa fa-minus" aria-hidden="true"></i></button>
<input data-id={{ $item->id }} class="quantity" min="1" name="quantity[]" value="{{ $item['quantity'] }}" type="number">
<button class="itemupdate qtyplus" type="button" data-cartid="{{ $item['id'] }}"><i class="fa fa-plus" aria-hidden="true"></i></button>
</div>
我只需要删除这个 onclick 函数