jQuery函数不在Ajax代码之前触发

时间:2019-05-28 04:41:59

标签: jquery ajax database

我的jQuery代码不会在我的Ajax代码之前 触发。 (jQuery代码的作用是将我的select元素更改为输入)。但是,它只会在我的Ajax代码之后 触发,但会产生不希望的结果-它将(现已隐藏)select元素的值插入数据库,而不是可见输入元素的值。如何使我的jQuery代码正常工作,以便它将成功将我的select元素更改为输入并将正确的值插入数据库?

这是包含select和input元素的html:

<form method="post" action="tocarthand.php?strid=<?php echo $prodtab->strid; ?>&prodid=<?php echo $prodtab->prodid; ?>" id="toctform">
    <select name="toctquantsel" id="quantsel">
        <?php $q = $prodtab->quant; ?>
        <?php for ($q = 1; $q <= 10; $q++): ?>
            <option value="<?php echo $q; ?>"><?php echo $q; ?></option>
        <?php endfor; ?>
        <?php if ($q > 10): ?>
            <option value="<?php echo $q; ?>"><?php echo $q; ?>+</option>
        <?php endif; ?>
    </select>
    <input type="text" name="toctquant" id="inphid">
    <input hidden name="toctquant" value="0">
    <button type="submit" name="tocartbut" id="tocartbut">Add to Cart</button>
    <div class="excquant"></div>
</form>

这是应该首先触发的jQuery代码:

$(function(){
    $(document).on("change", "#quantsel", function(){
        if($(this).val() == "11") {
            $("#inphid").show().focus();
            $("#quantsel").hide();
        }
    });
});

这是jQuery之后的Ajax代码:

$(function(){
    $(document).on("submit", "#toctform", function(){
        var selectValue = $('#quantsel').val();
        var inputValue = $('#inphid').val();
        var strid = '<?php echo $prodtab->strid; ?>';
        var prodid = '<?php echo $prodtab->prodid; ?>';
        $.ajax({
            type: 'POST',
            url: "tocarthand.php?strid="+strid+"&prodid="+prodid;
            data: {selectValueBox: selectValue, inputValueBox: inputValue}
            success: function(data){
                alert("Data Save: " + data);
            }
        });
    });
});

1 个答案:

答案 0 :(得分:0)

我在脚本中做了一些小修改

$(function(){
    $(document).on("submit", "#toctform", function(event){
        event.preventDefault();
        var selectValue = $('#quantsel').val();
        var inputValue = $('#inphid').val();
        var strid = '<?php echo $prodtab->strid; ?>';
        var prodid = '<?php echo $prodtab->prodid; ?>';
        $.ajax({
            type: 'POST',
            url: "jtest.php?strid="+strid+"&prodid="+prodid,
            data: {selectValueBox: selectValue, inputValueBox: inputValue},
            success: function(data){
                alert("Data Save: " + data);
            }
        });
    });
});

检查它,让我知道它可以解决问题。