使用triggerHandler为Ajax请求分配表单数据


Assigning form data for Ajax Request with triggerHandler

我对其他工作正常的表单使用完全相同的JQuery/Ajax调用,所以我完全不知道为什么这对我在本页上的第三个表单不起作用。也许你知道这可能是什么。

我想对需要发送的表单进行Ajax请求。

这是我的index.php,其中包括以下表单:

<div id="addSmurfForm" class="full_w">
    <div class="h_title">Add new smurfs - PHP Loader</div>
    <form name="form" id="test" method="post">
        <div class="element">
            <select name="accounttype" id="accounttype" class="required">
                <option value="gifting" selected="selected">Gifting accounts</option>
                <option value="fullip">Full IP accounts</option>
            </select>
        </div>
        <div class="element">
            <label for="priority">Accounts <span class="red">(required)</span></label>
            <textarea class="text required" name="accountData" id="accountData" placeholder="<?php echo $deintext="tenur2es67|Tbuvp928|EUW|54469c27c687b332339627'nkibbutzm65|K5ph88|EUW|54469ba0dec3e703865612"; ?>" style="height: 250px;"></textarea>
        </div>
        <div id="sendOrder" class="entry">
            <button type="submit" id="addSmurfsbtn" class="add">Load Accounts</button>
            <button id="resetbtn" class="cancel">Reset</button>
        </div>
        <div id="addSmurfsResult">
        </div>
    </form>
</div>

我的JQuery/Ajax请求:

$( "#addSmurfsbtn" ).click(function( event ) {
    event.preventDefault();
    var form_data = $( "#test" ).triggerHandler( "submitForm" );
    if ( form_data ) {
        $.ajax({
            type: "POST",
            url: "includes/loadsmurfs.php",
            data: form_data,
            success: function( data ) {
                $('#addSmurfsResult').append(data).hide().slideDown("slow");
                //alertify.alert("Done");
            }
        });
    }
});

我的loadsmurf.hp:

<?php
    echo "test";
?>

当我试图提醒"form_data"时,它会提醒"undefined",所以我认为问题在于将form_data分配给我的变量,但我找不到错误。我真的希望你能帮助我,我已经挣扎了两个小时了。

您没有定义submitFormsubmit处理程序。应该由以下人员完成:

$( "#addSmurfsbtn" ).click(function( event ) {
    event.preventDefault();
    $( "#test" ).triggerHandler('submit');
});
$('#test').on('submit', function() {
        $.ajax({
            type: "POST",
            url: "includes/loadsmurfs.php",
            data: $(this).serialize(),
            success: function( data ) {
                $('#addSmurfsResult').append(data).hide().slideDown("slow");
                //alertify.alert("Done");
            }
        });
});

特别说明

建议让表单中的submit按钮执行其设计的操作,但由于您没有提交按钮,您只需要在点击目标按钮时触发提交事件

$( "#addSmurfsbtn" ).click(function( event ) {
    event.preventDefault();
    $( "#test" ).submit();
});
$('#test').on('submit', function() {
     //....
});