添加字符功能需要在小数点前加0

Add character function need to add 0 before decimal point

本文关键字:小数点 字符 功能 添加      更新时间:2023-09-26

我使用以下JavaScript将小数添加到输入字段中:

function addChar(input, character) {
  if (input.value == null || input.value == "0"){
    input.value = character}
  else{
    input.value += character}
  };
$('#button-dot').click(function() {
  addChar(this.form.display, '.');
  });

带有 HTML 标记:

<INPUT NAME="display" ID="disp" VALUE="0" SIZE="28" MAXLENGTH="25"/>
<button TYPE="button" ID="button-1" VALUE="1">1</button>
<button TYPE="button" ID="button-2" VALUE="2">2</button>
<button TYPE="button" ID="button-3" VALUE="3">3</button>
<button TYPE="button" ID="button-4" VALUE="4">4</button>
<button TYPE="button" ID="button-5" VALUE="5">5</button>
<button TYPE="button" ID="button-6" VALUE="6">6</button>
<button TYPE="button" ID="button-7" VALUE="7">7</button>
<button TYPE="button" ID="button-8" VALUE="8">8</button>
<button TYPE="button" ID="button-9" VALUE="9">9</button>
<button TYPE="button" ID="button-0" VALUE="0">0</button>
<button TYPE="button" ID="button-dot" VALUE=".">.</button>

当用户在任何数字键之前按 #button-dot 键时,小数点的左侧没有零,我希望是这种情况。那么有没有办法改变这段代码,当用户输入小数点作为第一个键时,小数点的左侧会出现一个零?

试试这个处理程序:

$('#button-dot').click(function(){
    var txt = disp.val().replace(/'./g, '');
    if(!txt)
        txt = '0';
    txt += '.';
    disp.val(txt);
});

$(function() {
  var disp = $('#disp');
  //all buttons except for last button `dot`
  $('[id^=button-]').slice(0, -1).click(function() {
    var txt = disp.val();
    if('0' === txt) { //modified condition
      txt = '';
    }
    disp.val(txt + this.value);
  });
  $('#button-dot').click(function() {
    var txt = disp.val().replace(/'./g, ''); //replace all previous dots
    if (!txt)
      txt = '0';
    disp.val(txt + '.');
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<INPUT NAME="display" ID="disp" VALUE="0" SIZE="28" MAXLENGTH="25" />
<button TYPE="button" ID="button-1" VALUE="1">1</button>
<button TYPE="button" ID="button-2" VALUE="2">2</button>
<button TYPE="button" ID="button-3" VALUE="3">3</button>
<button TYPE="button" ID="button-4" VALUE="4">4</button>
<button TYPE="button" ID="button-5" VALUE="5">5</button>
<button TYPE="button" ID="button-6" VALUE="6">6</button>
<button TYPE="button" ID="button-7" VALUE="7">7</button>
<button TYPE="button" ID="button-8" VALUE="8">8</button>
<button TYPE="button" ID="button-9" VALUE="9">9</button>
<button TYPE="button" ID="button-0" VALUE="0">0</button>
<button TYPE="button" ID="button-dot" VALUE=".">.</button>

不完全确定你想要什么,但这段代码将用0.替换点、零或空输入:

function addChar(input, character) {
  if (input.value == '' || input.value == '.' || input.value == "0"){
    input.value = "0" + character}
  else{
    input.value += character}
  };
$('#button-dot').click(function() {
  addChar($('input').get(0), '.');
  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="i" />
<button id="button-dot">.</button>