私はjQueryにあまり詳しくありません。ページをリロードせずにバックグラウンドで送信されるフォームを作成しようとしています。
クリックすると表示および非表示になる非表示の div があり、div 内にフォームがあります。
2 つの問題があります。
1) フォームの検証が失敗しても、フォームは引き続き送信されます。検証コードと提出コードを条件に入れようとしましたif(validation == valid) { $.ajax.... }
が、正しく機能しません。
2) フォームが送信されると、div は自動的に非表示になるため、成功したメッセージは表示されません。
コードは次のとおりです。
$().ready(function() {
// Validate the form when it is submitted, using validation plugin.
var validator = $("#contactform").validate({
errorContainer: container,
errorLabelContainer: $(),
onkeyup: false,
onclick: false,
onfocusout: false,
errorPlacement: function (error, element) {
error.insertBefore(element);
}
});
});
$(function() {
//This submits a form
$('input[type=submit]').click(function() {
$.ajax({
type: "POST",
url: "contact.php",
data: $("#contactform").serialize(),
beforeSend: function() {
$('#result').html('<img src="loading.gif" />');
},
success: function(data) {
$('#result').html(data);
}
})
})
})
//This shows and hides div onclick
$(document).ready(function(){
$(".slidingDiv").hide();
$(".show_hide").show();
$('.show_hide').click(function(){
$(".slidingDiv").slideToggle();
});
});