jquery验证错误问题

时间:2010-10-21 19:14:29

标签: jquery

我每天都使用这个脚本,之前从未遇到过问题。我一直盯着它看,我找不到问题。我有一个带输入的表单,输入是必需的,并且最小长度为2.如果提交表单,则会显示“required”错误消息。如果您输入一个字符并再次点击提交,则会添加另一条错误消息,而不是在两者之间进行更改。请帮助!这是使用jquery.validate.js

<script type="text/javascript">
    $(document).ready(function() {
        $("#TTFirst").validate({
            errorElement: "span",
            errorPlacement: function(error, element) {
                error.appendTo( element.parent("td"));
            },

            rules: {
                    license: {
                    required: true,
                    minlength: 2
                }
            },

            messages: {
                license: {
                    required: "Please Enter Your First Name",
                    minlength: "Must be at Least 2 Characters"
                }

            }


        });

    });

</script>

HTML

<table cellspacing="1" id="credits">
    <form action="http://www.domain.com/dir/processor.php" method="post" id="TTFirst">
    <table>
    <tr class="odd">
    <td width="500">
        <label>$25 Transaction Credit for License </label>
            <input type="text" name="license" />
    </td>
    <td width="50">$26.95</td>
    <td width="150">
        <input type="hidden" name="item_number" value="41">
        <input type="submit" value="" class="orderNow" />
    </td>
        </tr>
    </table>
</form>

2 个答案:

答案 0 :(得分:2)

我见过最难的事。放入

时效果很好
<ul>
我猜这桌子上的东西。

答案 1 :(得分:0)

因为您使用的是自定义errorPlacement,所以看起来消息技术是通过将消息添加到相关标签的title属性而不是javascript中来执行的。检查此示例代码。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
                "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
 <script src="http://code.jquery.com/jquery-latest.js"></script>
 <script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/validate/jquery.validate.js"></script>
 <script>
  $(document).ready(function(){
   $("#myform").validate({
    errorPlacement: function(error, element) {
    error.appendTo( element.parent("td").next("td") );
   },
    debug:true
   })
  });
 </script>
 </head>

 <body>
  <form id="myform" action="/login" method="post">
   <table>
    <tr>
        <td><label>Firstname</label>
        <td><input name="fname" class="required" value="Pete" /></td>
        <td></td>
    </tr>
    <tr>
        <td><label>Lastname</label></td>
        <td><input name="lname" title="Your lastname, please!" class="required" /></td>
        <td></td>
    </tr>
    <tr>
        <td></td><td><input type="submit" value="Submit"/></td><td></td>
 </table>
 </form>
</body>
</html>

示例中的错误仅显示lname输入为空时,并从title属性中提取。