создать текстовое поле, принимающее только 0-9, и заставить эти числа появляться в другом текстовом поле, добавляя «1» к каждому номеру - PullRequest
0 голосов
/ 28 января 2020

У меня есть два поля текстового поля, я создал первое, принимающее числа только от 0 до 9 по регулярному выражению, и получаю их снова появляется во втором поле текстового поля;
Мне нужно, когда вы вводите любое число в поле первого текстового поля, эти числа появляются во втором текстовом поле, добавляя «1» к каждому номеру

, например:
при вводе «0» «в первом поле ==> во втором поле отображается« 1 »
при вводе« 1 »в первом поле ==> во втором поле отображается« 2 »
.....
при вы вводите «9» в первое поле ==> появляется предупреждение о том, что «серия закончена, вы не можете набрать 9»

это код JS

   var n1 = document.getElementById('numbers-1').value,
       n2 = document.getElementById('numbers-2').value;

    function numbersOnly(input) {
        var regex2 = /[^0-9]/;
        input.value = input.value.replace(regex2, "");

        var n2 = document.getElementById('numbers-1').value;
        document.getElementById('numbers-2').value = n2;
    }

а это HTML код

  <input type="text" maxlength="10" id="numbers-1" oninput="numbersOnly(this)"><br>
  <input type="text" id="numbers-2">

спасибо ребята

Ответы [ 2 ]

1 голос
/ 28 января 2020

Вы можете сделать это так, дайте мне знать, если понадобится еще какое-то объяснение

function numbersOnly(input) {
    var regex2 = /[^0-9]/;
    var val = parseInt(input.replace(regex2, ""));
    if(!isNaN(val)) {
      if(val.toString().indexOf('9') > -1) {
        document.getElementById('numbers-1').value = "";
        document.getElementById('numbers-2').value = "";
        alert('the series is ended, you cannot type 9');
      }
      else{
        document.getElementById('numbers-2').value = val+1;
      }
    } else {
       document.getElementById('numbers-1').value = "";
       document.getElementById('numbers-2').value = "";
    }
     
}
<input type="text" maxlength="10" id="numbers-1" oninput="numbersOnly(this.value)"><br>
  <input type="text" id="numbers-2">
0 голосов
/ 28 января 2020

Попробуйте это

<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<body>

<div ng-app="myApp" ng-controller="myCtrl">
<input ng-model="number" type="number" max="9" min="0" ng-keyup="print()" required><br><br>
<input ng-model="answer" type="number">
</div>

<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
    $scope.print = function()
    {
        if($scope.number >= 9)
        {
            alert('the series is ended, you cannot type 9');
            $scope.number = "";
        }
        else
        {
            $scope.answer= $scope.number + 1;
        }
    }
});
</script>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...