我正在使用完全相同的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个小时。
答案 0 :(得分:1)
您没有定义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() {
//....
});