除非输入值为0,否则删除按钮上的字符

时间:2016-01-12 03:50:00

标签: javascript jquery

目前我正在使用以下代码从输入显示中删除字符:

function deleteChar(input) {
  input.value = input.value.substring(0, input.value.length - 1)
}

不幸的是,如果显示器只读取一个字符,则在按钮单击时激活此功能将使输入显示空白。我想在这种情况下返回0。我试过瞄准字符串长度,但我没有成功。如何修改此功能以达到预期效果?

4 个答案:

答案 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;
}

代码说明:

  1. 将新值分配给变量nV

  2. 根据三元运算符

  3. 指定input.value

    此作业相当于以下内容:

    if (nV) {
      input.value = nV;
    } else {
      input.value = 0;
    }