Я создаю сайт, где пользователи нажимают на DIV, которые выглядят как телефонная клавиатура.Когда есть 3 или 7 символов, я добавляю дефис для имитации появления номера телефона.
Однако, когда они нажимают кнопку возврата, он не вычитает дефис.
Вотмой код со всеми ненужными кодами удален:
$(".phone_digit").click(function(e){
var html = "" + $("#input-box").html();
if( event.target.id == "phone_delete" ){
if( ( html.length === 5 ) || ( html.length === 9 ) ) {
$("#input-box").html( html.substr(0, html.length - 2 ) );
} else {
$("#input-box").html( html.substr(0, html.length - 1 ) );
}
html = "" + $("#input-box").html();
} else if ($("#input-box").html().length < 12) {
$("#input-box").html( html + "" + $("#" + event.target.id).html() );
html = "" + $("#input-box").html();
}
if( ( $("#input-box").html().length === 3 ) || ( html.length === 7 ) ) {
$("#input-box").html( $("#input-box").html() + "-");
html = "" + $("#input-box").html();
}
})
Одна странная вещь: если я изменю параметры длины с «5» и «9» на «4» и «8», код вычтетмимо дефиса.Но это не идеально, потому что в #input-box
остается висячий дефис до тех пор, пока вы не добавите или не вычтите другое число.
Вот скрипка: https://jsfiddle.net/mediocreb/t66jf0t4/3/