簡體   English   中英

用jquery-ajax在表單內提交帶有兩個不同提交按鈕的表單

[英]Submit form with two diffrent submit button inside the form by jquery-ajax

我在這里尋找了很多答案,但無法解決。 我試圖用兩個不同的提交按鈕在表單中提交表單,但是結果就像是為表單請求方法和操作一樣。 雖然我已經使用e.preventDefault()來防止默認表單提交。 謝謝

這是我的表格

<form class='detail-button'>
    <input type='hidden' id='sell_id' value='$pro_id' />
    <input type='hidden' id='sell_name' value='$pro_name' />
    <input type='hidden' id='sell_vd' value='$vendor' />
    <input type='submit' id='sell_add' class='btn' value='ADD TO CART'/>
    <input type='submit' id='sell_buy' value='BUY NOW'/>
</form>

這是使用的腳本

$(document).ready(function() {
    $('#sell_add').on('click', function(event) {
        event.preventDefault();
        var id = $("#sell_id").val();
        var name = $("#sell_name").val();
        var vendor = $("#sell_vd").val();
        $.ajax({
            type: "POST",
            url: "add_to_cart.php",
            data: 'id=' + id + '&name=' + name + '&vendor=' + vendor + '&click=cart',
            beforeSend: function() {
                $("#add_status").hide();
            },
            success: function(data) {
                var result = jQuery.parseJSON(data);
                $("#add_status").show();
                $("#add_status").html(result.stat);
                $(".cartqty").html(result.qty);
            }
        });
    });
});

$(document).ready(function() {
    $('#sell_buy').on('click', function(event) {
        event.preventDefault();
        var id = $("#sell_id").val();
        var name = $("#sell_name").val();
        var vendor = $("#sell_vd").val();
        $.ajax({
            type: "POST",
            url: "add_to_cart.php",
            data: 'id=' + id + '&name=' + name + '&vendor=' + vendor + '&click=buy',
            success: function(data) {
                window.location.href = data;
            }
        });
    });
});

更改您的提交按鈕類型。 這將起作用,因為您已使用其ID在按鈕點擊上設置了事件。

<input type='button' id='sell_add' class='btn' value='ADD TO CART'/>
<input type='button' id='sell_buy' value='BUY NOW'/>

並通過JS提交

$(".detail-button").submit();

請使用: detail-button是您的表格類

$('.detail-button').on('submit',function(event){ // Write Your AJAX Code Here }

您可以使用以下腳本:

$('#sell_add, #sell_buy').on('click', function(event) {
    event.preventDefault();
    var id = $("#sell_id").val();
    var name = $("#sell_name").val();
    var vendor = $("#sell_vd").val();
    var click = this.id == "sell_add" ? "cart" : "buy"; // <---check if clicked button is "sell_add"
    $.ajax({
        type: "POST",
        url: "add_to_cart.php",
        context:this,  // <----------add context to get the clicked button
        data: 'id=' + id + '&name=' + name + '&vendor=' + vendor + '&click='+click ,
        beforeSend: function() {
            $("#add_status").hide();
        },
        success: function(data) {
            if(this.id == "sell_id"){ // <--------------execute for sell_add
                var result = jQuery.parseJSON(data);
                $("#add_status").show();
                $("#add_status").html(result.stat);
                $(".cartqty").html(result.qty);
            } else {  // <----------execute for buy.
                window.location.href = data;
            }
        }
    });
});

或更好的方法是使用data-*屬性存儲特定信息:

<input type='submit' data-click='cart' id='sell_add' class='btn' value='ADD TO CART'/>
<input type='submit' data-click='buy' id='sell_buy' value='BUY NOW'/>

在下面使用此腳本:

$('#sell_add, #sell_buy').on('click', function(event) {
    event.preventDefault();
    var id = $("#sell_id").val();
    var name = $("#sell_name").val();
    var vendor = $("#sell_vd").val();
    var click = $(this).data('click'); //<------get the data-click here
    $.ajax({
        type: "POST",
        url: "add_to_cart.php",
        data: 'id=' + id + '&name=' + name + '&vendor=' + vendor + '&click='+click,
        beforeSend: function() {
            $("#add_status").hide();
        },
        success: function(data) {
            if(click  == "cart"){ // <--------------execute for data-click="cart"
                var result = jQuery.parseJSON(data);
                $("#add_status").show();
                $("#add_status").html(result.stat);
                $(".cartqty").html(result.qty);
            } else {  // <----------execute for data-click="buy".
                window.location.href = data;
            }
        }
    });
});

我建議使用Submit事件提交表單,並使用click事件添加到購物車。 此外,將“添加到購物車”的提交類型更改為按鈕

請參閱我在此處添加的更新代碼。 通常e.preventDefault()可以工作,但是如果您在事件結束時添加了false,那么它將大有幫助。

查看代碼段可能會幫助您

 $(document).ready(function() { $(document).on("click","#sell_add",function(event) { event.preventDefault(); var id = $("#sell_id").val(); var name = $("#sell_name").val(); var vendor = $("#sell_vd").val(); $.ajax({ type: "POST", url: "add_to_cart.php", data: 'id=' + id + '&name=' + name + '&vendor=' + vendor + '&click=cart', beforeSend: function() { $("#add_status").hide(); }, success: function(data) { var result = jQuery.parseJSON(data); $("#add_status").show(); $("#add_status").html(result.stat); $(".cartqty").html(result.qty); } }); return false; }); $(document).on("click","#sell_buy",function(event) { event.preventDefault(); var id = $("#sell_id").val(); var name = $("#sell_name").val(); var vendor = $("#sell_vd").val(); $.ajax({ type: "POST", url: "add_to_cart.php", data: 'id=' + id + '&name=' + name + '&vendor=' + vendor + '&click=buy', success: function(data) { window.location.href = data; } }); return false; }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <form class='detail-button'> <input type='hidden' id='sell_id' value='$pro_id' /> <input type='hidden' id='sell_name' value='$pro_name' /> <input type='hidden' id='sell_vd' value='$vendor' /> <input type='submit' id='sell_add' class='btn' value='ADD TO CART' /> <input type='submit' id='sell_buy' value='BUY NOW' /> </form> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM