jquery datepicker拦截格式错误

时间:2013-02-20 00:12:56

标签: jquery string text datepicker

我正在试图弄清楚如何允许不正确的值并自动将其格式化为正确的值。

例如,如果输入2013年6月1日,则不允许使用此值,因为“j”未大写。有没有办法可以将值作为文本(onBlur)拦截并将'j'更改为大写值?

问题是,我在检索输入的原始值之前遇到错误。我不确定在遇到错误之前我能够在哪个位置检索该值(因为它无法解析日期)。

感谢。

3 个答案:

答案 0 :(得分:1)

如果您希望每次都以相同的格式输入日期,您可以编写一个按空格分割输入的函数,然后检查每个部分是否为数字({} 1}},如果没有,那么将其大写。

parseInt()

请参阅DEMO

答案 1 :(得分:0)

为了在日期选择器中选择错误输入的日期,您可能会发现以下内容:

<body>

<form>
<input type="text" name="date" id="date"/>
</form>
<script>
$("#date").datepicker({constrainInput:false,dateFormat:"d M yy",onClose:function(picker,str) { $("#date").datepicker("setDate","yourdate in correct format"); } });

</script>
</body>
</html>

答案 2 :(得分:0)

感谢大家的回答。我想我的问题不太清楚。

过了一段时间,我设法找出了我正在寻找的东西。我的解决方案如下:

$("input.datepicker").datepicker({
...
})
.blur(function() {
var patt = new RegExp("[A-Z]");
var patt2 = new RegExp("[a-z]")
var text = $("input.datepicker").val();

if(!text.match(patt)) {
    var pos = text.search(patt2);
    var char = text.charAt(pos).toUpperCase();
    var correctedDate = text.replace(patt2, char);
    $("input.datepicker").val(correctedDate);
}
});