2012-03-30 182 views
1

我有一个像Born date这样的字段。我已经使用jquery datepicker来显示日历,以便用户可以选择日期。现在我有一个问题。jquery Datepicker日期范围验证

在玻恩日期字段有选择哪间打开两个日期选取器领域,如

出生日期一个选项 - --------- ---摘自之间---- ---并且--To ----------

现在的问题是,如果用户选择的'收件人'字段中的日期小于'发件人字段'并按提交按钮它被提交。我需要阻止它提交并显示适当的消息,以便用户输入正确的日期。

请帮助。

下面是我使用

<input id="borndate" class="dateISO" onchange="checkDate('borndate');"> 
</input> 

<span id="span_borndate" style="display:none"> 
<input id="borndate" class="dateISO" onchange="checkDate('borndate');"> 
</span> 

此代码的Java脚本的,我使用

function checkdate(fieldname) { 

    var comparator = '#comp_' + fieldName; 
    var compVal = $(comparator).val(); 
    Value = $('#' + fieldName).val(); 
    var fromDate = jQuery.datepicker.parseDate('mm-dd-yy', Value, null); 
    Values = $('#' + fieldName + '-to').val(); 
    var toDate = jQuery.datepicker.parseDate('mm-dd-yy', Values, null); 
    $('#span_' + fieldName).find('.error').remove(); 
    if (compVal == "Between") { 
     if (toDate < fromDate) { 
      $('#span_' + fieldName).append("<label class='rangeError' generated='false'>Start date should come before end date</label>"); 
      return false; 
     } 
    } 
    return true; 
} 

这是又被称为同时提交功能

function validateforms() { 
    var valid = true; 
    $('//classnamefor table rows which includes the date td').each(function (index) { 
     fieldName = $(this).attr("name"); 
     if ($('#' + fieldName).hasClass('dateISO')) { 
      valid = checkDate(fieldName); 
     } 
    } 
    return valid; 
} 
+0

我们可以让您的标记和代码你想? – Qpirate 2012-03-30 09:00:28

+0

http://jqueryui.com/demos/datepicker/#min-max – DaveHogan 2012-03-30 09:17:44

+0

我已经使用它,但问题出现时,用户在日期选择器字段中输入自己的日期,我canoot保持为只读 – 2012-03-30 09:26:32

回答

1

试试这个

http://jqueryui.com/demos/datepicker/#date-range

,使文本框只读=“真”

<input type="text" id="from" name="from_date" value="" readonly="true"/> 
<input type="text" id="to" name="to_date" value="" readonly="true"/> 
+0

我试过它mrsrinivas但如果用户manulalay类型日期少于从日期那里出现验证的问题,我面临它 – 2012-03-30 09:40:52

+0

好吧,我已经能够解决我自己我只是要添加此ocde在函数validateform if(!checkDate(fieldName)){validate = checkDate(fieldName) } – 2012-03-30 11:15:39

+0

@ aabiral poudel:good – mrsrinivas 2012-04-03 11:40:29