由于“ setCustomValidity不是函数”而出现错误

时间:2018-07-02 06:26:28

标签: javascript

我在JS中添加了验证,该错误为

  

未捕获的TypeError:contactdate.setCustomValidity不是一个函数。

我的JS代码如下:

function contactDateValidation() {
  var contactdate = new Date($('#date1').val()); // or Date.parse(...)

  //	var contactdate = $("#date1").val();  
  var dateNow = new Date(); // or Date.now()
  if (contactdate < dateNow) {
    contactdate.setCustomValidity('Date cannot be less than todays date');
  } else {
    $("#date1").setCustomValidity("");
  }
}

1 个答案:

答案 0 :(得分:0)

contactdate.setCustomValidity('Date cannot be less than todays date');

变量contactdate是一个Date对象,它没有名为setCustomValidity的函数。您可能打算在$("#date1")上使用它。

您需要在一个元素上调用它,因此它应该类似于:

$("#date1")[0].setCustomValidity("");

您可以在此处了解有关约束验证的更多信息:https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5/Constraint_validation

$("#date1")[0].setCustomValidity("Test")
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form>
  <input type="text" id="date1">
  <input type="submit">
</form>