时间:2011-09-07 14:02:48

标签: jquery html

嗨我需要在完成一些验证后提交一个页面。我之前从未使用过jQuery,任何想法如何做到这一点? 脚本来自本教程http://webcloud.se/log/Form-validation-with-jQuery-from-scratch/

<form method="post" action="/contact-process" id="demo-form">

    <script>
        var demoForm = $("#demo-form");
        demoForm.validation();
        demoForm.submit(function (e) {

            $("#valid-form").remove();
            if (demoForm.validate()) {
                demoForm.append("<strong id='valid-form'>Form is valid!</strong>");
            // Here submit the page

            }
            e.preventDefault();
        });
    </script>

7 个答案:

答案 0 :(得分:3)

由于您正在处理表单的submit事件,因此如果它无效,您只需致电preventDefault()

demoForm.submit(function(e) {
    $("#valid-form").remove();
    if (demoForm.validate()) {
        demoForm.append("<strong id='valid-form'>Form is valid!</strong>");
    } else {
        e.preventDefault();
    }
}

答案 1 :(得分:2)

将处理程序更改为仅在表单无效时阻止默认值:

demoForm.submit(function (e) {
    $("#valid-form").remove();
    if (demoForm.validate()) {
        demoForm.append("<strong id='valid-form'>Form is valid!</strong>");
    }
    else
        e.preventDefault();
});

答案 2 :(得分:1)

尝试调整脚本代码,以便在验证失败时阻止提交。例如,下面的代码(因为您只提供了一个代码段,我刚刚创建了一个基本上可以满足您需求的基本页面,您必须根据需要调整代码)

<html>
<head>
<title></title>
    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.2.min.js" type="text/javascript"></script> 
    <script type="text/javascript">
      $(document).ready(function() {
        var valid = true;
        $("form").submit(function (e) {
            if (!valid) {
                e.preventDefault();
            }
        });});
    </script>
</head>
<body>
<form method="post" action="anotherpage.htm">
    <input type="text" value="hello"></input>
    <input type="submit" value="submit"></input>
</form>
</body>
  1. 调用.preventDefault(旁注:您也可以返回false)停止实际发生的提交。如果表单有效,则会跳过if语句并继续提交。
  2. 您应该将jquery代码放在$(document).ready(function(){})中;因为在DOM完全加载之前你不想要任何东西。
  3. 通常,您应将脚本标记放在HEAD元素中

答案 3 :(得分:0)

也许你可以试试:

$("#valid-form").submit();

但是......在你的代码中删除表单,所以没有什么可以提交的。也许你可以使用hide()而不是remove()。

答案 4 :(得分:0)

尝试使用 $("#valid-form").submit();

答案 5 :(得分:0)

$("#valid-form").submit(); 

答案 6 :(得分:0)

如果表单仅在return true其他return false有效,则会停止提交表单。

    demoForm.submit(function (e) {

        $("#valid-form").remove();
        if (demoForm.validate()) {
            demoForm.append("<strong id='valid-form'>Form is valid!</strong>");

            return true;            

        }
        return false;
    });