Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.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 如何为每个输入字段分配索引_Javascript_Jquery_Html_Textbox - Fatal编程技术网

Javascript 如何为每个输入字段分配索引

Javascript 如何为每个输入字段分配索引,javascript,jquery,html,textbox,Javascript,Jquery,Html,Textbox,是的,所以这个问题也许不能说明我想说什么,但这是我想实现的。我在一个页面上有6个文本框,每个文本框包含一个介于0和500之间的数字(没有限制,但我不希望这个数字高于这个数字)。这个数字取决于其他地方的计算,但与这个问题无关,所以我把它省略了。不管怎样,我想做的是 运行一个循环,并根据indexone、indextwo等中的值大小,在代码下方的索引1到10之间分配一个新的文本框scoreone、scoretwo等 因此,例如,如果indexone包含15,则文本框scoreone将填充0。现在这很

是的,所以这个问题也许不能说明我想说什么,但这是我想实现的。我在一个页面上有6个文本框,每个文本框包含一个介于0和500之间的数字(没有限制,但我不希望这个数字高于这个数字)。这个数字取决于其他地方的计算,但与这个问题无关,所以我把它省略了。不管怎样,我想做的是

运行一个循环,并根据
indexone、indextwo
等中的值大小,在代码下方的索引1到10之间分配一个新的文本框
scoreone、scoretwo

因此,例如,如果
indexone
包含15,则文本框
scoreone
将填充0。现在这很好,但只适用于一个文本框,因为我有六个文本框,我不知道如何为所有文本框(即一个接一个)执行此操作。我正在使用JavaScript和jQuery

HTML:








JS:

var indexArray=[indexone,indextwo,indexthree,indexfour,indexfive,indexix];
对于(变量i=0;i=0)和&(indexArray[i]<25)){
scoreone=parseInt(1);
$('scoreone').val(scoreone);
}
如果((指数[i]>=25)和&(指数[i]<50)){
scoreone=parseInt(2);
$('scoreone').val(scoreone);
}
如果((指数[i]>=50)和&(指数[i]<75)){
scoreone=parseInt(3);
$('scoreone').val(scoreone);
}
else如果((indexArray[i]>=75)和&(indexArray[i]<100)){
scoreone=parseInt(4);
$('scoreone').val(scoreone);
}
如果((指数[i]>=100)和&(指数[i]<125)){
scoreone=parseInt(5);
$('scoreone').val(scoreone);
}
如果((指数[i]>=125)和&(指数[i]<150)){
scoreone=parseInt(6);
$('scoreone').val(scoreone);
}
else如果((indexArray[i]>=150)和&(indexArray[i]<175)){
scoreone=parseInt(7);
$('scoreone').val(scoreone);
}
else如果((indexArray[i]>=175)和&(indexArray[i]<200)){
scoreone=parseInt(8);
$('scoreone').val(scoreone);
}
如果((指数[i]>=200)和&(指数[i]225){
scoreone=parseInt(10);
$('scoreone').val(scoreone);
}
}

我也把我要做的事情放在了小提琴上…

试试这个

只需使用类并循环

HTML

<input type="text" disabled="disabled" value="20" class="index" />
<input type="text" disabled="disabled" value="0" class="score" /><br>


<input type="text" disabled="disabled" value="60" class="index" />
<input type="text" disabled="disabled" value="0" class="score" /><br>


<input type="text" disabled="disabled" value="100" class="index"/>
<input type="text" disabled="disabled" value="0" class="score" /><br>


<input type="text" disabled="disabled" value="160" class="index"/>
<input type="text" disabled="disabled" value="0" class="score" /><br>

<input type="text" disabled="disabled" value="180" class="index"/>
<input type="text" disabled="disabled" value="0" class="score" /><br>


<input type="text" disabled="disabled" value="210" class="index"/>
<input type="text" disabled="disabled" value="0" class="score" /><br>​
希望这能简化:

更新字段的ID以使用索引号作为后缀,如
score1
score2
。和
index1
index2

然后编写一个紧凑的java函数,如下所示:

 for (var i = 1; i <= 6; i++) {
    $('#score'+i).val(Math.ceil($('#index'+i).val()/25));
  }

for(var i=1;i试试这个工作示例,它更改了int的单词:


为什么不更改id是什么。因此,不要使用
scoreone
而是使用
score1
并通过添加
score
+
i
来命名,其中
i
是循环迭代器
parseInt的意义是什么(6)
?6已经是一个int。@MarcB你是对的,那只是多余的!我将删除…你是否意识到所有if中的>=检查都是多余的。当然它更大,否则它不会通过前面的步骤。@epascarello,你是对的。我在做什么。jquery将神奇地知道OP只想修改.scor紧跟在.index之后的元素…如何?谢谢,但问题是,indexone、indextwo等的值总是不同的,因为它们依赖于其他计算…@MarcB这些元素是按文档顺序返回的,因此只要结果与索引的顺序相同,就没有问题。@Kiz,您的comment没有给我提供更多的信息。@epascarello,对不起,我想说的是我用来计算索引的值,例如
indexone,indextwo
等实际上是计算字段(即这些框中的值可以更改)。希望这是明智的。这需要一些调整(我不需要将它绑定到
onClick
。非常感谢。
<input type="text" disabled="disabled" value="20" class="index" />
<input type="text" disabled="disabled" value="0" class="score" /><br>


<input type="text" disabled="disabled" value="60" class="index" />
<input type="text" disabled="disabled" value="0" class="score" /><br>


<input type="text" disabled="disabled" value="100" class="index"/>
<input type="text" disabled="disabled" value="0" class="score" /><br>


<input type="text" disabled="disabled" value="160" class="index"/>
<input type="text" disabled="disabled" value="0" class="score" /><br>

<input type="text" disabled="disabled" value="180" class="index"/>
<input type="text" disabled="disabled" value="0" class="score" /><br>


<input type="text" disabled="disabled" value="210" class="index"/>
<input type="text" disabled="disabled" value="0" class="score" /><br>​
//That whole if/else if statement reduced to a calculation
function getValue(val){
    var number = (Math.round(val/100*4)/4)*100/25;
    if (number>10) {
        number = 10;
    }        
    return number;
}

//Find all of the indexes and scores, returned in document order
var indexes = $(".index");
var scores = $(".score");

//loop through indexes and set the value on the corresponding score
indexes.each(function(ind) {
    var index = jQuery(this);
    var score = scores.eq(ind);
    var value = getValue(index.val());
    score.val(value);
});
 for (var i = 1; i <= 6; i++) {
    $('#score'+i).val(Math.ceil($('#index'+i).val()/25));
  }
var indexArray = [indexone, indextwo, indexthree, indexfour, indexfive, indexsix];
var scoreArray = [scoreone, scoretwo, scorethree, scorefour, scorefive, scoresix];

 for (var i = 0; i < indexArray.length; i++) {
    $('#'+scoreArray[i]).val(Math.ceil($('#'+indexArray[i]).val()/25));
  }