设置输入值然后禁用并移动到下一个空输入

时间:2015-09-03 17:27:11

标签: javascript arrays html5 input

好吧,这是一个很高的命令,但我没有取得多大进展,所以我决定寻求帮助。

我有一个随机数组的名称,我想将这些名称设置为HTML输入,使用值禁用HTML输入并移动到下一个。那可能吗?我的第二个问题是,我的随机组是否会起作用,我的意思是,所有14个名字都被称为?

所有的帮助将不胜感激。 - 我还在努力。

这是一个片段:



var randomGroup = ["Luciano", "Patrick", "SHL", "Leo", "Marilyn", "Ranbir", "Helena", "Annie", "Saikaran", "Julie", "Albert" , "Chris", "Igor", "Staci"]

Array.prototype.randomElement = function(){
 return this[Math.floor(Math.random() * this.length)]
}

var myRandomElement = randomGroup.randomElement();
/*console.log(myRandomElement);*/

function appendItem(){
  var inputs = document.getElementByTagName('input').value = '';
  var setInputs = document.getElementByTagName('input').innerHTML = myRandomElement;
 /* myRandomElement = randomGroup.randomElement();*/
    if (inputs == 0) {
    inputs = setInputs;
  } 
}

appendItem();

body{
  margin: 0 auto;
  text-align: center;
}

div {
  display: block;
  margin-bottom: -10px;
}

#group1, #group2, #group3, #group4, #group5, #group6, #group7 {
  display: inline-block;
}

<div>
  <p id="group1">Group 1</p>
  <input type="text" />
  <input type="text" />
</div> 
<div>
  <p id="group2">Group 2</p>
  <input type="text" />
  <input type="text" />
</div>
<div>
  <p id="group3">Group 3</p>
  <input type="text" />
  <input type="text" />
</div>
<div>
  <p id="group4">Group 4</p>
  <input type="text" />
  <input type="text" />
</div>
<div>
  <p id="group5">Group 5</p>
  <input type="text" />
  <input type="text" />
</div>
<div>
  <p id="group6">Group 6</p>
  <input type="text" />
  <input type="text" />
</div>
<div>
  <p id="group7">Group 7</p>
  <input type="text" />
  <input type="text" />
</div>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:3)

我不完全确定你想要实现的目标,但这里有一些指示:

  1. 没有getElementByTagName这样的功能,它应该是getElementsByTagName
  2. getElementsByTagName返回HTMLCollection。要访问此列表中的元素,您可以执行document.getElementsByTagName('input')[0]。这将获得第一个输入。
  3. 这绝对没有:if (inputs == 0) { inputs = setInputs; }

答案 1 :(得分:1)

你的错误

1。getElementsByTagName是正确的。 getElementByTagName不存在 2.当你得到一系列元素时,你必须将它们循环处理 3.要在输入场中插入值,您必须使用value而不是innerHTML

FIX :(只有appenItem函数有问题)

PURE JS Version Example

注意:jQuery版本在这个小提琴中被注释

function appendItem() {
    var inputs = document.getElementsByTagName('input');
    for (i = 0; i < inputs.length; i++) {
        inputs[i].value = myRandomElement
    }
}

jQuery版本

function appendItem() {
var inputs = document.getElementsByTagName('input');
$('input[type=text]').each(function (index, Obj) {
        $(this).val(myRandomElement)
})   
}