【问题标题】:jquery Datepicker date range validationjquery Datepicker日期范围验证
【发布时间】:2012-03-30 08:55:51
【问题描述】:

我有一个像出生日期这样的字段。我已经使用 jquery datepicker 来显示日历,以便用户可以选择日期。现在我遇到了问题。

在出生日期字段中有一个选项可以选择打开两个日期选择器字段,例如

出生日期 -- 介于--------- ---From------- 和 --To----------

现在的问题是,如果用户在“To field”中选择了一个小于“From field”的日期,然后按下提交按钮,它就会被提交。我需要阻止它提交并显示适当的消息,以便用户输入正确的日期。

请帮忙。

这是我正在使用的代码

<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;
}

【问题讨论】:

  • 我们可以获取您正在尝试的标记和代码吗?
  • 我已经使用过了,但是当用户自己在 datepicker 字段中键入日期并且我无法将其保持为只读时,就会出现问题
  • 请把上面的代码格式整理一下——非常难读。
  • 在您的问题解决后考虑接受/添加/编辑答案。

标签: javascript jquery datepicker


【解决方案1】:

试试这个

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

并使文本框只读='true'

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

【讨论】:

  • 我已经尝试过 mrsrinivas 但是如果用户 manulalay 键入的日期小于从日期开始的日期会出现验证问题并且我正面临它
  • 好的,我已经能够解决我自己的问题,我只需在函数 validateform if(!checkDate(fieldName)){ valid = checkDate(fieldName) } 中添加这个 ocde
猜你喜欢
  • 2010-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多