ここに問題があります:
$(document).ready(function()
{
$("#form1").validationEngine({
ajaxSubmit: true,
ajaxSubmitFile: "note/note.php",
success: false
});
validationEngine
オブジェクトリテラルをメソッドに渡します。success
プロパティは関数である必要があります。この関数には、検証が成功したときに実行されるように表示するコードが含まれています。代わりに、falseに設定してから、次のように続行します。
if (success == "true")
{
function()
{
実際にオブジェクトプロパティである変数を使用しているだけでなく(したがって、EVILであるグローバル変数を作成している)、関数を宣言していますが、それを呼び出していません。success
の値をチェックしていて、文字列であると期待していることに気づきました。phpスクリプトの戻り値は、引数として成功コールバック関数に渡されます。私もそれを反映するように関数を自由に変更しました:
$(document).ready(function()
{
$("#form1").validationEngine({
ajaxSubmit: true,
ajaxSubmitFile: "note/note.php",
success: function(response)//response is what the php script returns
{
//the function from your if branch goes here
}
});
そして、あなたは大丈夫でなければなりません。完全なコードは次のようになります。
$(document).ready(function()
{//notice the curly braces around what you're passing to validationEngine
$("#form1").validationEngine({
ajaxSubmit: true,
ajaxSubmitFile: "note/note.php",
success: function(response)
{
if (response !== 'true')
{
if (window.console)
{
console.log(response);
alert('check your console to see the response');
}
else
{
alert(response);
}
return;
}
alert("Report Sent!");//no need for window here
document.getElementById("update").innerHTML="Report Sent!";
setTimeout(function()
{
document.getElementById("update").innerHTML="";
},3000);
}
});
//As I said, you're passing an object, so you could write the code above like so:
var validationArgs = {ajaxSubmit:true,ajaxSubmitFile:'note/note.php'};
validationArgs.success = function()
{
//your function
};
$('#form1').validationEngine(validationArgs);
});