Back Space 在日期选择器中重定向到 chrome 上的上一页

发布于 2024-12-20 12:34:49 字数 1516 浏览 7 评论 0原文

我正在使用日期选择器选择 2 个日期的日期......同时单击退格键,我正在清除文本框值......在 Firefox 中它工作正常,但在 chrome 中它重定向到我的上一页。

$().ready(function() {

            var dates = $("#TestDateFrom, #TestDateTo").datepicker({
                changeMonth: true,
                numberOfMonths: 1,
                onSelect: function(selectedDate) {
                    var option = this.id == "TestDateFrom" ? "minDate" : "maxDate",
                    instance = $(this).data("datepicker"),
                    date = $.datepicker.parseDate(
                    instance.settings.dateFormat ||
                    $.datepicker._defaults.dateFormat,
                    selectedDate, instance.settings);
                    dates.not(this).datepicker("option", option, date);
                }
            });

            $("#TestDateFrom").keypress(function(e) {
                switch (e.keyCode) {
                    case 8:
                        $("#TestDateFrom").val("");  // backspace
                        break;
                    default:
                        e.preventDefault();
                        break;
                }
            });

            $("#TestDateTo").keypress(function(e) {
                switch (e.keyCode) {
                    case 8:
                        $("#TestDateTo").val("");  // backspace
                        break;
                    default:
                        e.preventDefault();
                        break;
                }
            });


        })

I am using date picker to select date for 2 dates....while clicking the backspace i am clearing the text box value....In firefox it working fine but in chrome it redirect to my previous page.

$().ready(function() {

            var dates = $("#TestDateFrom, #TestDateTo").datepicker({
                changeMonth: true,
                numberOfMonths: 1,
                onSelect: function(selectedDate) {
                    var option = this.id == "TestDateFrom" ? "minDate" : "maxDate",
                    instance = $(this).data("datepicker"),
                    date = $.datepicker.parseDate(
                    instance.settings.dateFormat ||
                    $.datepicker._defaults.dateFormat,
                    selectedDate, instance.settings);
                    dates.not(this).datepicker("option", option, date);
                }
            });

            $("#TestDateFrom").keypress(function(e) {
                switch (e.keyCode) {
                    case 8:
                        $("#TestDateFrom").val("");  // backspace
                        break;
                    default:
                        e.preventDefault();
                        break;
                }
            });

            $("#TestDateTo").keypress(function(e) {
                switch (e.keyCode) {
                    case 8:
                        $("#TestDateTo").val("");  // backspace
                        break;
                    default:
                        e.preventDefault();
                        break;
                }
            });


        })

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

暖树树初阳… 2024-12-27 12:34:49

jquery 中触发按键、按键向上、按键按下的事件取决于浏览器。因此,在这三个事件中触发事件以获得稳定的结果...

试试这个

$().ready(function() {

            var dates = $("#TestDateFrom, #TestDateTo").datepicker({
                changeMonth: true,
                numberOfMonths: 1,
                onSelect: function(selectedDate) {
                    var option = this.id == "TestDateFrom" ? "minDate" : "maxDate",
                    instance = $(this).data("datepicker"),
                    date = $.datepicker.parseDate(
                    instance.settings.dateFormat ||
                    $.datepicker._defaults.dateFormat,
                    selectedDate, instance.settings);
                    dates.not(this).datepicker("option", option, date);
                }
            });

            $("#TestDateFrom").keyup(function(e) {
                switch (e.keyCode) {
                    case 8:
                        $("#TestDateFrom").val("");
                        e.preventDefault();  // backspace
                        break;
                    default:
                        e.preventDefault();
                        break;
                }
            });
            $("#TestDateFrom").keydown(function(e) {
                switch (e.keyCode) {
                    case 8:
                        $("#TestDateFrom").val("");  // 
                        e.preventDefault();
                        break;
                    default:
                        e.preventDefault();
                        break;
                }
            });

            $("#TestDateFrom").keypress(function(e) {
                switch (e.keyCode) {
                    case 8:
                        $("#TestDateFrom").val("");  // backspace
                        e.preventDefault();
                        break;
                    default:
                        e.preventDefault();
                        break;
                }
            });

            $("#TestDateTo").keypress(function(e) {
                switch (e.keyCode) {
                    case 8:
                        $("#TestDateTo").val("");  // backspace
                        e.preventDefault();
                        break;
                    default:
                        e.preventDefault();
                        break;
                }
            });

            $("#TestDateTo").keyup(function(e) {
                switch (e.keyCode) {
                    case 8:
                        $("#TestDateTo").val("");  // backspace
                        e.preventDefault();
                        break;
                    default:
                        e.preventDefault();
                        break;
                }
            });
            $("#TestDateTo").keydown(function(e) {
                switch (e.keyCode) {
                    case 8:
                        $("#TestDateTo").val("");  // backspace
                        e.preventDefault();
                        break;
                    default:
                        e.preventDefault();
                        break;
                }
            });




        })

the event fire in jquery to key press , key up key down is browser dependent.. so fire the event in all the three to get stable result...

try this

$().ready(function() {

            var dates = $("#TestDateFrom, #TestDateTo").datepicker({
                changeMonth: true,
                numberOfMonths: 1,
                onSelect: function(selectedDate) {
                    var option = this.id == "TestDateFrom" ? "minDate" : "maxDate",
                    instance = $(this).data("datepicker"),
                    date = $.datepicker.parseDate(
                    instance.settings.dateFormat ||
                    $.datepicker._defaults.dateFormat,
                    selectedDate, instance.settings);
                    dates.not(this).datepicker("option", option, date);
                }
            });

            $("#TestDateFrom").keyup(function(e) {
                switch (e.keyCode) {
                    case 8:
                        $("#TestDateFrom").val("");
                        e.preventDefault();  // backspace
                        break;
                    default:
                        e.preventDefault();
                        break;
                }
            });
            $("#TestDateFrom").keydown(function(e) {
                switch (e.keyCode) {
                    case 8:
                        $("#TestDateFrom").val("");  // 
                        e.preventDefault();
                        break;
                    default:
                        e.preventDefault();
                        break;
                }
            });

            $("#TestDateFrom").keypress(function(e) {
                switch (e.keyCode) {
                    case 8:
                        $("#TestDateFrom").val("");  // backspace
                        e.preventDefault();
                        break;
                    default:
                        e.preventDefault();
                        break;
                }
            });

            $("#TestDateTo").keypress(function(e) {
                switch (e.keyCode) {
                    case 8:
                        $("#TestDateTo").val("");  // backspace
                        e.preventDefault();
                        break;
                    default:
                        e.preventDefault();
                        break;
                }
            });

            $("#TestDateTo").keyup(function(e) {
                switch (e.keyCode) {
                    case 8:
                        $("#TestDateTo").val("");  // backspace
                        e.preventDefault();
                        break;
                    default:
                        e.preventDefault();
                        break;
                }
            });
            $("#TestDateTo").keydown(function(e) {
                switch (e.keyCode) {
                    case 8:
                        $("#TestDateTo").val("");  // backspace
                        e.preventDefault();
                        break;
                    default:
                        e.preventDefault();
                        break;
                }
            });




        })
情话墙 2024-12-27 12:34:49

这对我有用,但我的日期选择器文本框设置为只读。不希望用户能够输入日期。我创建了一个委托事件侦听器,用于处理两个日期选择器文本框的所有“关键”事件。

$(document).on('keypress keydown keyup', '#txtDtFrom, #txtDtTo', function (e){
    if (e.keyCode == 8) e.preventDefault();
});

如果您想稍微简化选择器,您还可以向所有日期选择器文本框添加一个类。

This worked for me, but my datepicker textboxes are set to readonly. Didn't want the user to be able to type in a date. I created a delegated event listener that handles all the "key" events for the two datepicker textboxes.

$(document).on('keypress keydown keyup', '#txtDtFrom, #txtDtTo', function (e){
    if (e.keyCode == 8) e.preventDefault();
});

You could also add a class to all datepicker textboxes if you want to simplify your selector a bit.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文