jQuery验证器不返回预期的结果

时间:2013-05-03 15:08:08

标签: jquery

我有一个年龄的文本框。提交表单时,我想从客户端检查文本框中的值是否大于18,如果年龄不大于18,则显示一条消息。

我现在遇到的问题,我的自定义验证器在我键入文本时显示消息,而在我输入18以下的数字时根本不显示。任何帮助都表示赞赏。谢谢。

这是我的自定义验证器:

<script>
    $(document).ready(function(){
      $.validator.addMethod('ageGreaterEighteen', function(value){
        return parseFloat(value) > 0;
      }, 'Age has to be greater than 18');

      $.validator.addMethod("textOnly", function(value) {
        return !/[0-9]+/.test(value);
      }, "Alpha Characters Only.");

      $("#TestForm").validate({
        rules: {
          txtName: {
            required: true,
            textOnly: true
          },
          txtAge: {
            required: true,
            ageGreaterEighteen: true
          }
        },
        messages: {
          txtName: {
            required: "* Required",
            textOnly: "Please enter text only"
          },
          txtAge: {
            required: "* Required",
            ageGreaterEighteen: "Age has to be greater than 18!"
          }
        }
      });
    })
</script>

这是我的表格:

<form id="TestForm">
    <label for="txtName">Name: </label><br />
    <input name="txtName" type="text" id="txtFirstName" /><br />
    <label for="txtAge">Age: </label><br />
    <input name="txtAge" type="text" id="txtAge" /><br />
    <input type="submit" value="Submit" id="btnSubmit" />
</form>

1 个答案:

答案 0 :(得分:0)

你有:

  $.validator.addMethod('ageGreaterEighteen', function(value){
    return parseFloat(value) > 0;
  }, '

哪个应该是

  $.validator.addMethod('ageGreaterEighteen', function(value){
    return parseFloat(value) > 18;
  }, '
相关问题