目前我正在使用以下代码从输入显示中删除字符:
function deleteChar(input) {
input.value = input.value.substring(0, input.value.length - 1)
}
不幸的是,如果显示器只读取一个字符,则在按钮单击时激活此功能将使输入显示空白。我想在这种情况下返回0。我试过瞄准字符串长度,但我没有成功。如何修改此功能以达到预期效果?
答案 0 :(得分:2)
function deleteChar(input) {
if(input.value.length == 1) {
input.value = 0;
} else {
input.value = input.value.substring(0, input.value.length - 1);
}
}
<input type="text" value="123" id="inputElement" />
<button onclick="deleteChar(document.getElementById('inputElement'))">Click</button>
如果您想要更短的版本,请随意使用(包括三元运算符):
function deleteChar(input) {
input.value = input.value.length == 1 ? 0 : input.value.substring(0, input.value.length - 1);
}
答案 1 :(得分:1)
你在寻找这样的东西:
function deleteChar(input) {
if(input.value.length == 1) return 0; //return 0 if there is only 1 character
input.value = input.value.slice(0, -1);
}
答案 2 :(得分:1)
我会使用三元运算符:
function deleteChar(input) {
input.value = input.value.length === 1
? 0
: input.value.substr( 0, input.value.length - 1 )
;
}
答案 3 :(得分:1)
我提出了另一个三元版本
function deleteChar(input) {
nV = input.value.substring(0, input.value.length - 1);
input.value = nV ? nV : 0;
}
代码说明:
将新值分配给变量nV
根据三元运算符
input.value
醇>
此作业相当于以下内容:
if (nV) {
input.value = nV;
} else {
input.value = 0;
}