0

検証プラグインを使用してjQueryでフォームを検証しようとしていますが、複数のフィールドを検証するために複数のルールを設定する方法がわからないようです。

これが私のテストスクリプトです:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<link rel="stylesheet" type="text/css" href="styles.css">
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="jquery.validate.min.js"></script>
<script type="text/javascript">
    $(document).ready(function(){       
        $("#test").click(function () {              
            $('#test_form').validate({
                rules: {
                    firstName: {
                        required: true
                    },
                    surname: {
                        required: true
                    }
                },
                success: function() {
                    alert('it works?');
                }
            });
        });
    });
</script>
</head>
<body>
<form id="test_form" action="" method="post">
    <fieldset>
        <legend>Create an Account</legend>
        <label for="firstName">First Name</label><br/>
        <input id="firstName" name="firstName" type="text" /><br/><br/>
        <label for="surname">Surname</label><br/>
        <input id="surname" name="surname" type="text" /><br/><br/>
        <a href="#" id="test">try me</a>
    </fieldset>
</form>
</body>
</html>

私がどうやってそれを台無しにしたかについてのどんな考えでも、それは最もありがたいです!!

ありがとう!

4

2 に答える 2

1

$("#test_form").validate(...)リンクをクリックする前に電話する必要があります。現在何が起こっているかというと、リンクがクリックされたときに検証がフォームに追加されますが、テストは行われません。

これを試して:

var $form = $('#test_form');

$form.validate({
    rules: {
        firstName: {
            required: true
        },
        surname: {
            required: true
        }
    },
    success: function() {
        alert('it works?');
    }
});

$("#test").click(function(e) {
    e.preventDefault();
    $form.submit();
});
于 2012-05-02T18:34:11.317 に答える