사용자가 텍스트 필드에 입력 할 때 hh : mm 형식을 자동으로 지정하려고합니다. 처음에는 00:00이고 사용자가 처음 두자를 입력하면 분 부분을 채워야하며 세 번째와 네 번째 문자를 입력 할 때 시간 부분을 자동으로 채워야합니다. 사용자 지정 스크립트를 만들었지 만 버그가있는 것으로 보입니다. 누군가가 저를 해결하도록 도울 수 있습니까? 또는 Jquery 라이브러리가 있다면 제게 제안하십시오. 나는 또한 입력 마스크를 시도했다. 그러나 그것은 나의 요구를 가지고 있지 않습니다. 또한 커서가 오른쪽에서 시작해야합니다. 검증이 차단 복용텍스트 필드의 유형이 hh : mm과 같이 자동으로 서식을 지정할 때
var num_order = "";
var last_input = "";
var length = 0;
var result_str = "00:00";
$('#price').bind('keydown', function(evt) {
//alert(String.fromCharCode(evt.keyCode));
length = num_order.length;
if (length < 4) {
if (evt.keyCode == 8) {
num_order = num_order.substring(0, num_order.length - 1);
} else {
last_input = String.fromCharCode(evt.keyCode);
if (last_input > 0) {
num_order = num_order + last_input;
//alert(num_order);
} else {
}
}
} else {
if (evt.keyCode == 8) {
num_order = num_order.substring(0, num_order.length - 1);
}
}
//alert(num_order);
var result = update_input(num_order);
//$("#price").val("");
$("#price").val(result);
});
var result = update_input(num_order);
//$("#price").val("");
$("#price").val(result);
function update_input(str) {
length = str.length;
if (length == 0) {
result_str = "00:00";
} else if (length == 1) {
//alert(str);
result_str = "00:0" + str;
//alert(result_str);
} else if (length == 2) {
result_str = "00:" + str;
} else if (length == 3) {
var first2 = str.substring(0, 2);
var last1 = str.substring(2, 3);
result_str = "0" + last1 + ":" + first2;
} else if (length == 4) {
var first2 = str.substring(0, 2);
var last2 = str.substring(2, 4);
result_str = last2 + ":" + first2;
}
//$("#price").val("");
//$("#price").val(result_str);
return result_str;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<input type="text" id="price" value="00:00" />
왜 오른쪽에서 왼쪽으로? 먼저 HH와 MM보다 먼저 들어가는 것이 더 합리적이지 않습니까? –
하지만 요구 사항은 이와 비슷합니다. :( –