まず、他の提案に基づいて、私はpreventDefault()を移動しようとしましたが、成功しませんでした。バックグラウンドで作業する代わりに、Ajaxフォームをリロードする
私のフィードバックフォームは、フォームフィールドに「process.php」を渡すと、関連するメッセージを返すために、このJavaScriptを使用しています(例:「sucesss」または「不合格」)
それはそれを除いてその仕事を代わりに滞在していますこれで、それをロード「process.php」ページ「feedback.php」は、同じページ上... {「データ」:「データ値」}
相続コード:
$(document).ready(
function(){
$('form').submit(
function(event){
var formData =
{
'name' : $('input[name=name]').val(),
'page' : $('input[name=page]').val()
};
$('.form-group').removeClass('has-error'); // remove the error class
$('.error').remove(); // remove the error text
event.preventDefault();
$.ajax({
type : 'POST', // define the type of HTTP verb we want to use (POST for our form)
url : 'process.php', // the url where we want to POST
data : formData, // our data object
dataType : 'json', // what type of data do we expect back from the server
encode : true
})
.done(function(data){
if (! data.success)
{
if (data.errors.name)
{
$('#name-group').addClass('has-error'); // add the error class to show red input
$('#nameField').append(data.errors.name); // add the actual error name under our input
}
}
else
{
$('form').append('<div class="buttonError">Message Sent!</div>');
form.myButton.disabled = true;
}
}
);
.fail(function(data){
$('form').append('<div class="buttonError">Failed!</div>');
}
console.log(data);
);
event.preventDefault();
}
);
});
がエラーのためには、ブラウザのコンソールをチェックしてください。ページの移動後に* "Preserve log" *(またはブラウザの同等のもの)を有効にして、メッセージを残す必要があるかもしれません。 – Phil
フォームを投稿してください。 – snit80
'.fail'の前後に構文エラーがあります。以下の '}' ** **を 'console.log'の後ろに移動してください。 **タイプミスとして閉じる投票** – Phil