jquery验证域自定义方法

时间:2016-08-02 08:38:34

标签: javascript jquery regex validation

您好我是jQuery的新手,想学习如何使用与RegExp结合的validate函数来检查输入是否正确,但我不确定这是否是最好的方法。

正确的输入应具有以下格式:

integer.string.domain(例如:1.myFirstDomain.com或22.mySecondDomain.someInfo.org)

我开始尝试使用以下代码中只有数字的验证函数,只是为了看看我是否可以使用一个简单的RegExp,但它不起作用,我不确定验证输入的最佳方法,包括此特定格式的数字和字符串。

$(document).ready(function() {
  $("#testform").click("submit").validate({
    rules: {
      input: {
        numberInput: true
      }
    },
    messages: {
      input: "Please enter a number"
    }

  });
});

$.validator.addMethod('numberInput', function(value) {
  return /^[0-9]+$/.test(value);
}, 'Please only enter numeric values (0-9)');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>

<form id="testform">
  <p>InputTest</p>
  <input id="input" placeholder="Input domain here.">
  <br>
  <button id="submit" type="submit">Submit</button>
  <br>
</form>

1 个答案:

答案 0 :(得分:0)

这里有两个问题。

  1. 无需拨打click('submit'),这会在点击按钮时导致jquery-1.11.3.js:4670 Uncaught TypeError: ((jQuery.event.special[handleObj.origType] || (intermediate value)).handle || handleObj.handler).apply is not a function之类的错误
  2. 验证器框架使用元素名称来应用规则,因此为输入添加名称
  3. &#13;
    &#13;
    $(document).ready(function() {
      $("#testform").validate({
        rules: {
          input: {
            numberInput: true
          }
        },
        messages: {
          input: "Please enter a number"
        }
    
      });
    });
    
    $.validator.addMethod('numberInput', function(value) {
      return /^[0-9]+$/.test(value);
    }, 'Please only enter numeric values (0-9)');
    &#13;
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>
    
    <form id="testform">
      <p>InputTest</p>
      <input id="input" name="input" placeholder="Input domain here.">
      <br>
      <button id="submit-btn" type="submit">Submit</button>
      <br>
    </form>
    &#13;
    &#13;
    &#13;