Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 创建一个只接受0-9的文本框,并通过添加“";1“;每一个数字_Javascript_Html_Forms - Fatal编程技术网

Javascript 创建一个只接受0-9的文本框,并通过添加“";1“;每一个数字

Javascript 创建一个只接受0-9的文本框,并通过添加“";1“;每一个数字,javascript,html,forms,Javascript,Html,Forms,我有两个文本框字段,我创建了第一个,通过正则表达式只接受0-9之间的数字,并让它们再次出现在第二个文本框字段中我需要在第一个文本框字段中键入任何数字时,通过在每个数字上添加“1”,这些数字将显示在第二个文本框中 例如: 当您在第一个字段==>中输入“0”时,第二个字段显示“1” 当您在第一个字段==>中输入“1”时,第二个字段显示“2” ..... 当您在第一个字段中输入“9”时==>会出现警报,告诉您“序列已结束,您无法键入9” 这是JS代码 var n1 = document.get

我有两个文本框字段,我创建了第一个,通过正则表达式只接受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">

谢谢大家

你们可以这样做, 如果需要更多解释,请告诉我

功能编号仅限(输入){
变量regex2=/[^0-9]/;
var val=parseInt(input.replace(regex2,”);
如果(!isNaN(val)){
if(val.toString().indexOf('9')>-1){
document.getElementById('numbers-1')。value=“”;
document.getElementById('numbers-2')。value=“”;
警报(“序列已结束,不能键入9”);
}
否则{
document.getElementById('numbers-2')。value=val+1;
}
}否则{
document.getElementById('numbers-1')。value=“”;
document.getElementById('numbers-2')。value=“”;
}
}

试试这个

<!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>



var-app=angular.module('myApp',[]); 应用程序控制器('myCtrl',函数($scope){ $scope.print=函数() { 如果($scope.number>=9) { 警报(“序列已结束,不能键入9”); $scope.number=“”; } 其他的 { $scope.answer=$scope.number+1; } } });
我是JS的初学者,这项任务是在无薪实习中分配给我的,我以表格形式进行了验证,多次之后无法进行第二步,谢谢Jorge:)@samoscieno查看我的answer@Sarfraaz它对数字1-8的效果更好;但是,如果您输入“0”,则什么也不会发生,如果输入“9”,则消息显示良好,但在您为消息输入“ok”之后;“9”出现在box@samoscieno我已经更新了答案,请查看now@Sarfraaz第一个字段应仅接受字符0-9,验证不起作用,同样当您在输入一系列数字后键入“9”时;警报不起作用问题是针对普通javascript,而不是angular。所以他们想要什么解决方案,angular js和javascript之间没有太大区别