我对其他工作正常的表单使用完全相同的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分配给我的变量,但我找不到错误。我真的希望你能帮助我,我已经挣扎了两个小时了。
您没有定义submitForm
或submit
处理程序。应该由以下人员完成:
$( "#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() {
//....
});