2014-09-26 84 views
0

我有一个JavaScript函数,当单击表单提交按钮时会被调用来做一些验证。如果一切正常,则执行普通的JavaScript确认窗口以确保用户想要提交表单。但是,我想使用jConfirm来根据我的需要定制标题,而不是“所以,所以页面说:”。jConfirm框没有出现

这是我有:

function validate(form) { 
    var fieldcheck = true; 

    if(!checkUSPhone (form.elements["phonenumber"],true)) 
    fieldcheck = false; 
    if(!checkEmail (form.elements["emailaddress"],true)) 
    fieldcheck = false; 

    if(fieldcheck) { 
    jConfirm(("Submit Changes"), 'Are you sure?', function(fieldcheck) { 
     if(fieldcheck) 
     { 
      alert("True"); 
      fieldcheck = true; 
     } 
     else 
     { 
      alert("False"); 
      fieldcheck = false; 
     } 
    }); 
    } 

    return fieldcheck; 
} 

我使用jQuery V1.7.2,并有jquery.alert.js V1.0.3并链接到页面的jquery.alert.css文件。

但是,当用户提交表单时,没有框出现,页面提交。我已经看过这里的其他例子,我的语法与所说的是正确的。

我错过了什么?

+0

不能从异步方法返回! – epascarello 2014-09-26 18:11:21

+0

我曾经为了一些误导性的原因添加了它。无论如何,jConfirm框都不会出现。 – braab 2014-09-26 18:22:27

+0

由于表单提交...你不能用这样的对话框取消表单提交。将'return fieldcheck;'改为'return false'并观察“alert”。 – epascarello 2014-09-26 18:23:34

回答

0

像epascarello是在暗示,你只需要对你的代码的一些变化:

function validate(form) { 
    var fieldcheck = true; 

    if(!checkUSPhone (form.elements["phonenumber"],true)) 
    fieldcheck = false; 
    if(!checkEmail (form.elements["emailaddress"],true)) 
    fieldcheck = false; 

    if(fieldcheck) { 
    jConfirm(("Submit Changes"), 'Are you sure?', function(fieldcheck) { 
     if(fieldcheck) 
     { 
      alert("True"); 
      form.submit();// The user has confirmed, we proceed to submit. 
     } 
     else 
     { 
      alert("False"); 
      fieldcheck = false; 
     } 
    }); 
    } 

    return false;// Prevent submit. We'll submit the form after the user has confirmed through jConfirm. 
}