使用triggerHandler为Ajax Request分配表单数据

时间:2014-10-29 16:56:58

标签: javascript php jquery ajax forms

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

我想为需要发送的表单执行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");
            }
        });
    }
});

我的loadsmurfs.php:

<?php
    echo "test";
?>

当我试图提醒&#34; form_data&#34;它警告&#34; undefined&#34;所以我认为问题是将form_data分配给我的变量,但我无法找到错误。我真的希望你能帮助我,我现在正在努力奋斗2个小时。

1 个答案:

答案 0 :(得分:1)

您没有定义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() {
     //....
});