简体   繁体   English

jQuery表单验证,用于空白字段或格式错误的字段

[英]jQuery form validation for a blank field or a field with the wrong format

I am looking to have the date validated on submit. 我希望在提交时验证日期。 Meaning if the value of the input element is blank or if the format is wrong, an error message will appear. 表示如果输入元素的值为空白或格式错误,则会出现错误消息。

Here is my HTML: 这是我的HTML:

<form method="get" action="date-picker.html" id="frmdate" onsubmit="return validate()">
  <p>Start Date: <input type="text" name="txtdate" id="startdate"></p><span id="warning_startdate"></span>
  <p>End Date: <input type="text" name="txtdate" id="enddate"></p><span id="warning_enddate"></span>
  <input type="submit" value="send">
</form>

and here is my jQuery: 这是我的jQuery:

$(function() {
  $( "#startdate, #enddate" ).datepicker({ dateFormat: 'yy-mm-dd' });
});

$('form').on('submit',function(e){
  if(! ( /\d{2}-\d{2}-\d{2}/.test($('#startdate').val() ) && /\d{2}-\d{2}-\d{2}/.test($('#enddate').val() ) ) ) {
    e.preventDefault();
    document.getElementById("warning_startdate").innerHTML = ('please insert valid date & format');
  }
});

Would I need to use a plugin? 我需要使用插件吗? Is there any way I can do this without a plug in? 没有插件,有什么办法可以做到吗?

Any help would be appreciated. 任何帮助,将不胜感激。

you can achive it without plugin by using regular expression in jquery and check for valid dates in form submit event as follow 您可以通过在jQuery中使用正则表达式来实现不使用插件的情况,并在表单提交事件中检查有效日期,如下所示

$(document).ready(function() { $(document).ready(function(){

$(function() {
  $( "#startdate, #enddate" ).datepicker({ dateFormat: 'yy-mm-dd' });
    });     //code indentation
$('form').on('submit',function(e){
   if(! ( /\d{2}-\d{2}-\d{2}/.test($('#startdate').val() ) && /\d{2}-\d{2}-\d{2}/.test($('#enddate').val() ) ) )
  {
    e.preventDefault(); //stop form being submitted!
    alert('please insert valid date');
  }
});

}); });

HTML: HTML:

<form action="" method="post" name="form" id="form">
  <p>Start Date <input type="text" id="startdate"></p>
  <p>End Date <input type="text" id="enddate"></p>  
  <input type="submit" id="signup" value="Send">            
</form>

Javascript: 使用Javascript:

$('#form').submit(function( event ) { 
  if (($("#startdate").val()) === "" || ($("#enddate").val()) === "") {
    alert('The fields start date and end date cannot be empty. Please enter value.');
    return false;
  } else if(! ( /\d{2}-\d{2}-\d{2}/.test($('#startdate').val() ) && /\d{2}-\d{2}-\d{2}/.test($('#enddate').val() ) ) ) {  
    alert('Please insert date in valid format.');
    return false;
  } else {
    $("#form").attr("action", "date-picker.html");
    $( "#form" ).submit();
  }
});

JSFiddle 的jsfiddle

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM