gpt4 book ai didi

jquery - 如何修复输入文本中的文本格式?

转载 作者:行者123 更新时间:2023-12-01 06:56:52 24 4
gpt4 key购买 nike

我正在使用 JQuery,我希望创建一个输入来让用户输入日期'mm-dd-yyyy'

示例:当用户数字12(月份)时,我想自动显示-。这可能吗?

最佳答案

$('input').keyup(function(e){
var val = $(this).val();
val = val.replace(/[^0-9]/g,'');
if(val.length >= 2)
val = val.substring(0,2) + '-' + val.substring(2);
if(val.length >= 5)
val = val.substring(0,5) + '-' + val.substring(5);
if(val.length > 10)
val = val.substring(0,10);
$(this).val(val);
});

这是一个现场演示:

http://jsfiddle.net/AUAJ3/

更新:

一些优化:

  • 如果按下其中一个“特殊”键(我的意思是在这种情况下删除退格键和箭头键)允许您更改当前值
  • 您应该检查 keydown 按下的键是否为有效数字 (0-9),并停止不是的事件 ID
  • 将校正算法也绑定(bind)到 change 事件
$('input')      .change(function(e){        $(this).val(formatDate($(this).val()));    })    .keyup(function(e){         if(isSpecialKey(e.keyCode))            return true;          $(this).val(formatDate($(this).val()));    })    .keydown(function(e){        if(isSpecialKey(e.keyCode))            return true;        var k = e.charCode || e.which;        var keyVal = String.fromCharCode(k);        if(!/[0-9]/.test(keyVal) || $(this).val().length > 9)            {                e.preventDefault();                return false;            }    });function formatDate(val){    val = val.replace(/[^0-9]/g,'');    if(val.length >= 2)        val = val.substring(0,2) + '-' + val.substring(2);     if(val.length >= 5)        val = val.substring(0,5) + '-' + val.substring(5);     if(val.length > 10)        val = val.substring(0,10);    return val;}function isSpecialKey(k){    for(var i in KEY)        if(KEY[i] == k)            return true;    return false;}var KEY = {    'delete' : 46,    'backspace' : 8,    'left' : 37,    'right' : 39,    'up' : 38,    'down' : 40}

这是一个现场演示:

http://jsfiddle.net/AUAJ3/2/

第二次更新:

您应该告知用户您的输入字段所需的日期格式。
请参阅updated demo对于这个新功能。

关于jquery - 如何修复输入文本中的文本格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7925922/

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