【问题标题】:bootstrap-datetimepicker validations in the jspjsp 中的 bootstrap-datetimepicker 验证
【发布时间】:2014-10-18 17:00:17
【问题描述】:

我在我的 Web 应用程序中使用 spring-mvc 和 bootstrap。在页面中,我有 2 个字段供用户输入开始日期时间和结束日期时间,这是我从 bootstrap-datetimepicker.js 中获取的 https://github.com/smalot/bootstrap-datetimepicker

这很好用,但现在我需要包含验证,startdate-time 总是大于 enddate-time,我也使用 jquery.validate.min.js 进行表单验证,但我无法比较2个时间戳,我试过下面的代码

$.validator.addMethod("budgetgreaterThan", 
          function(value, element, params) {
      alert(value);
      value=value.slice(0,-6);


        if (!/Invalid|NaN/.test(new Date(value))) {
            return new Date(value) >= new Date($(params).val());
        }
        return isNaN(value) && isNaN($(params).val()) 
            || (Number(value) > Number($(params).val())); 
    },'Must be greater than {0}.');

rules:
{
  budgetgreaterThan: '#startdate' 
}

messages:
{
    budgetgreaterThan:"Delivery date and Collect date should be proper"
}

这里的时间戳值是这种格式"YYYY-MM-DD hhhh:mm:ss"

谁能告诉我如何做到这一点?

【问题讨论】:

    标签: jquery twitter-bootstrap smalot-datetimepicker


    【解决方案1】:

    我通过进行 ajax 调用并在后端验证解决了这个问题,我避免使用 $.validator.addMethod() 而是使用 onblur="myFunction()"

    <input type="text" id="enddate" name="enddate" onblur="myFunction()">
    
    <script>
    function myFunction()
    {
    
      var sdate = $('#startdate').val();
      var edate = $('#enddate').val();
    
      var totaldate = sdate+"/"+edate;
    
       $.ajax({
         url: '${pageContext.servletContext.contextPath}/developer/createinstance/TimeCheck.prm',
         type: 'get',
         data: "totaldate="+totaldate,
         success: function (data1) {
           if(data1 == -1)
           {     
             bootbox.alert("enddate cannot be lesser than start date");
             $('#startdate').val("");
             $('#enddate').val("");
           }
           if(data1 == 0)
           {
             bootbox.alert("date cannot be same");
             $('#startdate').val("");
             $('#enddate').val("");
           }
         }
       });
    }
    </script>
    

    但我确信有更好的方法来实现这一点,如果有人能提供更好的解决方案,那就太好了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-02
      • 1970-01-01
      • 1970-01-01
      • 2014-09-29
      • 1970-01-01
      • 2021-04-17
      相关资源
      最近更新 更多