0

我在表单上使用 jQuery 验证插件http://jqueryvalidation.org/。我还使用了一些 javascript,这意味着表单的响应是在弹出窗口中打开的。我遇到的问题是,如果表单未验证但用户尝试提交它,则会出现一个空白的弹出窗口。我希望只有在表单验证时才会出现弹出窗口。这是我的代码:

HTML

<form id="contactform" action="formmail.php" method="post" name="contactform" onsubmit="popupform(this, 'join')">
    <input name="env_report" type="hidden" value="REMOTE_HOST,REMOTE_ADDR,HTTP_USER_AGENT,AUTH_TYPE,REMOTE_USER" />
    <input name="recipients" type="hidden" value="me@mydomain.co.uk" />
    <input type="hidden" value="http://www.mydomain.co.uk/thankyou.html" name="good_url" />
    <input type="hidden" value="http://www.mydomain.co.uk/error.html" name="bad_url" />
    <input type="text" placeholder="Name..." name="realname" class="input-text required" required />
    <input type="email" placeholder="Email..." name="email" class="input-text required" required />
    <input type="text" placeholder="Phone..." name="phone" class="input-text required" required />
    <input class="submit button" name="Submit" type="submit" value="Submit" />
</form>

Javascript

$(document).ready(function() {
    $("#contactform").validate();
});

function popupform(contactform, windowname){
    if (! window.focus)return true;
    window.open('', windowname, 'height=250,width=500,scrollbars=no');
    contactform.target=windowname;
    return true;}

如果您能提供帮助,我将不胜感激。谢谢你。

4

1 回答 1

1

不要使用表单的 onsubmit 属性调用 popupform,而是从验证插件的提交处理程序中调用它。

$(document).ready(function() {
    $("#contactform").validate({
        submitHandler: function(form) {
            popupform(form, 'join');

            // do other things for a valid form
            form.submit();
        }
    });
});
于 2013-10-11T13:43:05.957 回答