【发布时间】:2020-01-02 14:15:16
【问题描述】:
我尝试了多种方法来停止页面,但不幸的是,它不起作用,我有一种前端形式的 Wordpress 插件 我尝试了可能的时间,但代码不起作用 插件表单代码
echo '<div id="submit_car_form">';
echo '<form id="cd_car" name="cd_car" class="cd_car" method="post" action="'.$_SERVER['PHP_SELF'].'" enctype="multipart/form-data" >';
echo '<input type="hidden" name="author_id" value="'. get_current_user_id().' " />';
echo '<p><label for="title">Title</label><br />';
echo '<input type="text" id="title" value="" size="60" name="title" />';
echo '</p>';
..........................
i Have multiple inputs
..........................
echo '<p align="left"><input type="submit" tabindex="6" id="submit_car" name="submit_car" /></p>';
wp_nonce_field( "car-frontend-post" );
echo '</form>';
echo '</div>';
表单提交时停止刷新的Javascript代码
jQuery(document).ready(function($) {
$('#submit_car').on('submit', function(event){
// $('#cd_car').on('submit', function(e){
// $('#cd_car').submit(function(e){
// $('#submit_car').click(function(e){
e.preventDefault();
var message = document.getElementById("file").value;
var title = document.forms["cd_car"]["title"].value;
if (title == ""){
alert("Title cannot be empty");
return false;
}
else {
$.ajax({
type: 'POST',
dataType: 'JSON',
data: new FormData($('#car_data')[0]),
contentType: false,
cache: false,
processData: false,
success: function(data){
console.log(data);
alert('Your Form Submited');
},
error: function(data){
console.log(data);
alert('something wrong');
}
});
return false;
}
});
});
【问题讨论】:
-
这里有两个问题。首先,您使用
e.preventDefault,但您将参数命名为event。更改为event.preventDefault,您的代码将按照您的需要运行。其次,如果您正在收听submit事件,您应该选择#cd_car表单,而不是按钮。最后,您可以删除return语句,因为它们在使用preventDefault()时没有实际意义。投票结束是一个印刷错误 -
我更正了上面提到的更改,但它显示错误警报消息
alert('something wrong'); -
这意味着您的 AJAX 请求由于服务器上的错误而失败。另请注意,您似乎在 AJAX 请求中缺少
url属性 -
是的,我刚刚添加了 url ` url : '';`
标签: javascript php jquery html wordpress