javascript - 尝试将输入元素移动到另一个 Div

标签 javascript html

我正在创建一个一次显示一个问题的表单。不过,我想在单击“查看完整表单”时以不同的 View 显示所有问题。我遇到的问题是以上述形式显示问题。单 View 问题没有问题。

我可以在上述表单上显示该值,但实际上无法输入任何内容。那不是我想要的。

例如。万一有人感到困惑:

(在单一 View 中) 问题1:(输入框)答案1 (全图) 问题1:答案1(全文本,无输入框)

我想做的事: (在单一 View 中) 问题1:(输入框)答案1 (全图) 问题1:(输入框)答案1

就像我说的,我看到如何获取该值(我使用了answer[i-1] = document.getElementById(i-1).value),然后我打印答案但没有输入框。 我意识到我的错误,所以我尝试了 document.getElementById(x) ,它给了我[object HTMLInputElement]。再说一遍,我只想要输入框,如果答案已填充在单个 View 上,则已填充答案。 在这里进行了一些搜索并尝试使用appendTo、descendants 和appendChild(对象不支持这些),但没有任何帮助。

html

<div id="questionnaire-question">Click 'Start' to begin...</div>
<div id="input-questionnaire">
  <input type='text' class='form-control' name='reqEng' id='1' style="display:none" placeholder="Requesting Engineer" required>
</div>
<button id="view-form" onclick="viewForm()">View Complete Form</button>
<form id="full-form" style="display:none">
  <div id="full-form-question"></div>
  <input type="reset" name="reset" value="Reset Fields">
  <input type="submit" name="submit" id="submitQuestionnaire" value="Submit Questionnaire">
</form>
</div>

js

function viewForm() {
    for (var x = 0; x < 44; x++) {
        //form.appendChild(document.getElementById(x));         //  Didn't work
        //form.insert(document.getElementById(x).descendants()[x]);     //  Not supported
        //document.getElementById(x).style.display = "block";                   //  Loop for questions and answers to populate
        //document.getElementById(x+1).appendTo(form);
        //fullForm.innerHTML += questions[x]+ ": " + answer[x+1] + " <br>";
        fullForm.innerHTML += questions[x] + ": " + document.getElementById(x + 1) + " <br>";

    }
}

这就是我想要的(来自以前的表单。我将输入填充到数组中,但发现如果我只是对其进行硬编码,那么某些功能会更容易) /image/RlPzA.jpg

这是我目前拥有的:

/image/OKdBc.jpg

最佳答案

您的问题可能需要一些澄清,但我正在尝试解决这个问题,希望我们能让您走上正轨。

下面是一个简单地将输入从一个 div 移动到另一个 div 的示例:

function viewForm(){
//gets all of the inputs held in the "input-questionnaire" div
var inputs = document.getElementById('input-questionnaire').getElementsByTagName('input');

//loop through the collection of inputs
for(var i = 0;i < inputs.length; i++)
{
  //if you want to ensure input is no longer hidden when moved
  //inputs[i].style.display = "block";

  //move the element to the new div
  document.getElementById("full-form-question").appendChild(inputs[i]);
}
//probably want to show the hidden form at this point
document.getElementById("full-form").style.display = "block";
}

如果您确实想将输入“复制”到新的 div,这里是另一个选项:

function viewForm(){
//gets all of the inputs held in the "input-questionnaire" div
var inputs = document.getElementById('input-questionnaire').getElementsByTagName('input');

//loop through the collection of inputs
for(var i = 0;i < inputs.length; i++)
{ 
  //clone the current input
  var clone = inputs[i].cloneNode();

  //make sure the question is visible?
  clone.style.display = "block";

  //append the clone to your "full-form-question" div
  document.getElementById("full-form-question").appendChild(clone);  
}
//probably want to show the hidden form at this point
document.getElementById("full-form").style.display = "block";
}

希望这有帮助。干杯!

关于javascript - 尝试将输入元素移动到另一个 Div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57118998/

相关文章:

javascript - 使用框中的箭头增加文本框中的值

javascript - 使用脚本创建的元素看起来不同

javascript - 无法将对象推送到 localStorage 中的数组中

html - 使用 inline 可以达到相同的结果吗?

javascript - 检查是否输入了文本。找不到错误

javascript - 通过 css 和 jquery 将第一个和最后一个 child 应用于某个 <tr> id

javascript - 水平对齐固定 DIV

读取网页源代码并从标签获取属性的 PHP 代码

php - 如何使用 JavaScript 将数据加载到表单?

javascript 正则表达式 - 将所有实例替换为一个