【发布时间】:2017-06-08 13:53:15
【问题描述】:
我想知道如何在输入文本中为日期添加最小值和最大值。 我想要的格式是:dd/mm/yyyy
所以我在输入中添加了一个 maxlenght,并在用户输入 2 个数字后自动添加了“/”。
当我测试它时,一切都很好,但我仍然可以写“67/34/8888”而不是正确的日期。
这是我的代码:
<form method="post" action="#" id="formStep2">
<input type="text" id="txtDate" class="selector" placeholder="dd/mm/yyyy" maxlength="10" required />
</form>
<script>
$(document).ready(function() {
$("#txtDate").keyup(function(){
if ($(this).val().length == 2){
$(this).val($(this).val() + "/");
}else if ($(this).val().length == 5){
$(this).val($(this).val() + "/");
}
});
});
</script>
是否可以添加类似的内容:
if ($(this).val().length == 2 && $(this).val().min == 1 && $(this).val().max == 31){...}
非常感谢您的帮助
【问题讨论】:
-
使用日期选择器?另外,缓存
$(this)并重用它。$(this)对象的创建是一个比较繁重的操作。执行一次let $this = $(this)并重复使用$this。 -
if ($(this).val().length == 2 && $(this).val().length >= 1 && $(this).val().length <= 31){...}编辑:只是逻辑,虽然当然有更好的方法来做到这一点.. -
嗨 Jeremy,非常感谢您对 $(this) 的建议!我会看看我可以用日期选择器做什么
-
嗨,yezzz,谢谢你的回答,看起来很简单,我会测试一下:)
-
这不是你需要的逻辑,我只插入了有效代码。要添加到 Jeremy 的答案,您也可以只使用一个 var,例如
var x = $(this).val().length; if (x == 2 && x >= 1 && x <= 31){...}
标签: javascript date input