gpt4 book ai didi

datepicker() 和 mask() 之间的 jQuery 冲突

转载 作者:行者123 更新时间:2023-12-01 07:16:23 26 4
gpt4 key购买 nike

我正在使用 jquery-ui-datepicker.min.js 和 http://digitalbush.com/projects/masked-input-plugin/一起输入:

$("#datepicker").datepicker().mask("99/99/9999");

将它们一起使用允许用户使用可视日期选择器设置日期或以掩码格式键入日期(键入时/和 _ 字符可见)。

但是当用户尝试删除文本并清除输入时,它们会发生冲突。将日期添加到输入后,如果先按 DELETE,然后按 ALT 按钮,则删除的文本会返回。因此,用户无法取消设置服务器提供的或自己输入的日期。

我尝试过 .mask("format", {completed: function})、datepicker 的 onClose、$().focusout() 事件。没有任何方法可以捕获已删除的文本并确保其保持原样。

最佳答案

哈哈,我修好了!

    $("#datepicker").datepicker().mask("99/99/9999");
$("#datepicker").keyup(function(e){
if(46==e.keyCode || 8==e.keyCode || 9==e.keyCode){
var $this = $(this);
if($this.val() == "__/__/____")
$this.val("");
}
});

每次 DELETE、BACKSPACE(表示用户想要删除它)或 TAB(表示用户离开输入)时,此代码都会验证文本是否已删除以及 mask() 添加了掩码文本,如果是,则清除该文本。

据我所知, mask() 添加了屏蔽文本 __/__/____ 以便用户可以在其上键入,但是当 datepicker() 看到该文本时,它认为它是无效日期并替换它与 Now() 文本。我的代码拦截它并在 datepicker() 看到它之前清除该文本,哈哈。

还有一个问题,如果用户通过鼠标单击其他地方来离开输入,有时仍然会出现该问题。我可以尝试 focusout() 或者其他什么,但我现在不会尝试。

关于datepicker() 和 mask() 之间的 jQuery 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18512199/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com