Jquery日期选择器限制日期,如2222222/33333/444444

时间:2012-04-04 08:35:20

标签: jquery validation date datepicker jquery-ui-datepicker

我在我的MVC 3 + Razor项目中使用Jquery Date Picker。

我已成功使用并将其与我的项目集成。

现在使用日期选择器我可以看到它不允许像a,b ... @#,$,%..等字符。但它确实允许数字,理解我的意思是看截图,

我想我需要对jquery本身进行一些更改,但我不知道在哪里。请帮我解决这个问题。

enter image description here

enter image description here

在marcolinux的帮助下,我使用了http://keith-wood.name/uiDatepickerValidation.html,现在我将其添加到我的脚本中

        $(form).validate({
        rules: {
        startDate: {
        dpDate: true
        }
        }
        });

并导入此链接

 <script src="../../Scripts/jquery.ui.datepicker.validation.js" type="text/javascript"></script>

我现在在这方面取得了更多进展 现在我在文本框中使用class =“dpDate”,我可以在文本框中输入红色边框作为输入 1212635245 111/12313/12313

现在我需要知道的最后一部分是如何在文本框旁边显示错误消息。

4 个答案:

答案 0 :(得分:3)

您似乎担心文本框中“键入”的日期。您可以在datepicker:

触发的onClose事件中挂钩错误检查函数
  

允许您在关闭日期选择器时定义自己的事件,   是否选择了日期。该函数接收所选的   date作为文本(''如果没有)和datepicker实例作为参数。   这指的是相关的输入字段。

当用户在文本框中键入内容时,将打开日期选择器。当用户选择日期(有效)或控件失去焦点时(日期可能有效或可能无效),onClose事件将触发。然后,您可以检查事件处理程序中的日期:

$("#datepicker").datepicker({
    onClose: function(dateText, instance) {
        var date;
        try {
            date = $.datepicker.parseDate(instance.settings.dateFormat || $.datepicker._defaults.dateFormat, dateText, instance.settings);
        }
        catch (e) {
            alert("$.datepicker.parseDate failed");
        }
        if (!date) {
            alert("This date is not valid");
            $(this).val("");
        }
    }
});

Demo here

答案 1 :(得分:1)

此插件将按您的要求执行

http://keith-wood.name/uiDatepickerValidation.html

例如

Validate date:   2222/22/222
results :   Please enter a valid date

答案 2 :(得分:1)

输入属性readonly =“readonly” 应该解决问题:)

答案 3 :(得分:1)

尝试文本框的onkeypress,

$('#ID').keypress(function (event) {
if (event.charCode >= 48 && event.charCode <= 57 && this.value.length < 10 || event.charCode == 47 && (this.value.length == 2 || this.value.length == 5)) { if ((this.value.length == 2 || this.value.length == 5) && event.charCode != 47) {
$(this).val(this.value + "/");
} } else event.preventDefault(); });