我尝试了多种方法来停止该页面,但不幸的是,它不起作用,我有一种 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;
}
});
});
最佳答案
您的表单的 ID 为 cd_car
,而不是 submit_car
!因此,在您更改选择器之前,您的 JS 处理程序不会将其作为目标。
此外,正如评论中提到的,处理程序中的事件对象称为 event
,但在代码中您使用 e.preventDefault()
而不是 event.preventDefault()
关于javascript - 如何使用 Javascript 停止页面刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59564831/