私はbassistance.deのjQueryバリデータープラグイン(1.11)を使用し、php経由で送信します。これで、javacriptコードの最後にある送信ハンドラーにajax呼び出しを追加しましたが、呼び出しが機能せず、firebugコンソールにも存在しません。
ケース1サイトの先頭にajax呼び出しを置くと、機能しますが、バリデータープラグインが表示されなくなります。
ケース2呼び出しを送信ハンドラー内に置くと、それは存在せず、フォームはphpによって送信されます。
ケース3 ページの最後にコードを配置しても、お問い合わせフォームはphpによって送信されます。
これがajax呼び出しです:
$("#contactform").submit(function(e){
e.preventDefault();
$.ajax({
type: "POST",
url: "formfiles/submit.php",
data: $(this).serialize(),
success: function() {
$('#contactform').html("<div id='message'></div>");
$('#message').html("<h2>Your request is on the way!</h2>")
.append("<p>someone</p>")
.hide()
.fadeIn(1500, function() {
$('#message').append("<img id='checkmark' src='images/ok.png' />");
});
}
});
return false;
});
誰かが何が悪いのか知っていますか?
これについて頭を悩ませながら、助けてくれてありがとう。
編集 問題をよりよく理解するために、ここに完全なjavascriptがあります
$(document).ready(function(){
$("#contactform").validate();
$(".chapta").rules("add", {maxlength: 0});
var validator = $("#contactform").validate({
ignore: ":hidden",
rules: {
name: {
required: true,
minlength: 3
},
cognome: {
required: true,
minlength: 3
},
subject: {
required: true,
},
message: {
required: true,
minlength: 10
}
},
submitHandler: function(form) {
$("#contactform").submit(function(e){
e.preventDefault();
$.ajax({
type: "POST",
url: "formfiles/submit.php",
data: $(this).serialize(),
success: function() {
$('#contactform').html("<div id='message'></div>");
$('#message').html("<h2>Your request is on the way!</h2>")
.append("<p>someone</p>")
.hide()
.fadeIn(1500, function() {
$('#message').append("<img id='checkmark' src='images/ok.png' />");
});
}
});
return false;
});
},
});
});
編集2
セレクターと残りのすべては問題ないようです。
<form action="#n" class="active" method="post" name="contactform" id="contactform">