我无法使脚本正常工作,在运行时总会返回错误
$(document).ready(function()
{
$("#form1").validationEngine({
ajaxSubmit: true,
ajaxSubmitFile: "note/note.php",
success: false
});
if (success == "true")
{
function()
{
window.alert("Report Sent!");
//write a confirmation to the user
document.getElementById("update").innerHTML="Report Sent!";
setTimeout(function()
{
document.getElementById("update").innerHTML="";
},3000);
}
}
});
这可能是一个很好的解决方案吗?
答案 0 :(得分:2)
问题在于:
$(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);
});
答案 1 :(得分:0)
您需要使用回调函数。
$(document).ready(function() {
var update = $("#update");
// Callback
var onSuccess = function() {
alert("Report Sent!");
//write a confirmation to the user
update.html("Report Sent!");
setTimeout(function(){
update.html("");
},3000);
};
$("#form1").validationEngine({
ajaxSubmit: true,
ajaxSubmitFile: "note/note.php",
success: onSuccess
});
});