jQuery验证没有http://的URL

时间:2019-02-04 18:52:29

标签: javascript jquery url jquery-validate

我正在尝试使用jQuery validate而不使用http://来验证url,但是它不起作用。我正在听here

上mtosic的回答
<form id="form" method="post" action="#">
    <input type="text" name="url" id="url" />
    <button type="submit">Submit</button>
</form>

  $.validator.addMethod('validUrl', function(value, element) {
    var url = $.validator.methods.url.bind(this);
    return url(value, element) || url('http://' + value, element);
  }, 'Please enter a valid URL');

$("#form").validate({
  rules: {
    "url": {
      url: "validUrl"
    }
  },
  submitHandler: function (form) { 
    alert('valid form submitted'); 
    return false; 
  }
});

当我输入“ www.google.com”之类的地址时,我仍然收到无效错误。

Here's the fiddle

出了什么问题?谢谢您的帮助

1 个答案:

答案 0 :(得分:1)

问题是因为您已经定义了名为company = alias(Company.__table__, name='company', flat=True) query = select([Company]).order_by(company.c.company) proxyobject = session.execute(query, bind=engine_1) rows = proxyobject.fetchall() print rows 的规则,但仍在validUrl设置中的元素上设置了url规则。还要注意,您要将布尔值传递给属性,而不是字符串。试试这个:

$.validate
$(document).ready(function() {
  $.validator.addMethod('validUrl', function(value, element) {
    var url = $.validator.methods.url.bind(this);
    return url(value, element) || url('http://' + value, element);
  }, 'Please enter a valid URL');

  $("#form").validate({
    rules: {
      "url": {
        validUrl: true // <-- change this
      }
    },
    submitHandler: function(form) {
      alert('valid form submitted'); // for demo
      return false; // for demo
    }
  });
});
body {
  padding: 20px;
}

label {
  display: block;
}

input.error {
  border: 1px solid red;
}

label.error {
  font-weight: normal;
  color: red;
}

button {
  display: block;
  margin-top: 20px;
}