我有以下要求,在表格的时间字段中,如果不是以这种格式手动键,则应自动添加冒号hh:mm:ss
我有以下代码,它可以自动填充,但如果用户键冒号手动添加两个冒号,如hh :: m:ss
有人可以帮忙解决这个问题吗?
JSP:
<b:form-group label="${runtime}" labelFor="runtime" cssLabel="col-sm-2" cssBody="col-sm-2" cssClass="required">
<form:input path="runTime" cssClass="form-control" required="required" maxlength="8"/>
<form:errors path="runTime" cssClass="validate-error"/>
</b:form-group>
JS:
$('#runTime').on('keydown', function(e) {
if(e.keyCode != 8 && (this.value.length === 2 || this.value.length === 5)) {
this.value += ":";
}
});
更新答案
我们必须在崩溃之前使用 chiliNUT 回答添加额外的检查,否则选择所有并且点击删除/退格按钮在Chrome浏览器中不起作用。
$('#runTime').on('keydown', function(e) {
//your code
if(e.keyCode != 8 && (this.value.length === 2 || this.value.length === 5)) {
this.value += ":";
}
//collapse double colons
if(this.value.endsWith("::")) {
this.value=this.value.replace(/:+/g,":");
}
});
答案 0 :(得分:1)
在keydown之后折叠双冒号
$('#runTime').on('keydown', function(e) {
//your code
if(e.keyCode != 8 && (this.value.length === 2 || this.value.length === 5)) {
this.value += ":";
}
//collapse double colons
this.value=this.value.replace(/:+/g,":");
});
最后一行将查看字符串,然后获取1个或多个冒号的任何实例(连续冒号?:-))并将其转换为单个冒号