当前位置: 首页 > 面试题库 >

动态添加输入元素以形成表单

羊舌墨一
2023-03-14
问题内容

我已经阅读了许多关于动态添加字段集的博客和文章,但是它们都给出了非常复杂的答案。我所需要的不是那么复杂。

我的HTML代码:

<input type="text" name="member" value="">Number of members: (max. 10)<br />
<a href="#" id="filldetails">Fill Details</a>

因此,用户将在该input字段中输入一个整数值(我正在使用javascript检查验证)。在单击Fill Details链接时,将出现相应数量的输入字段供他输入。我想使用javascript实现此目的。

我不是javascript专业人士。我在考虑如何input通过链接检索用户在字段中填写的整数并显示相应数量的输入字段。


问题答案:

您可以使用onclick事件处理程序来获取文本字段的输入值。确保为字段赋予唯一id属性,以便可以通过document.getElementById()以下方式安全地引用该字段:

如果要动态添加元素,则应有一个放置它们的容器。例如,一个<div id="container">。通过创建新元素document.createElement(),并使用appendChild()将每个元素附加到容器。您可能对输出有意义的name属性感兴趣(例如name="member"+i<input>对于要以表格形式提交的每个动态生成的s,则可能会感兴趣)。

请注意,您还可以使用创建<br/>元素document.createElement('br')。如果只想输出一些文本,则可以使用document.createTextNode()

另外,如果您想在每次将要填充的容器时都将其清除,则可以将hasChildNodes()removeChild()一起使用。

<html>
<head>
    <script type='text/javascript'>
        function addFields(){
            // Number of inputs to create
            var number = document.getElementById("member").value;
            // Container <div> where dynamic content will be placed
            var container = document.getElementById("container");
            // Clear previous contents of the container
            while (container.hasChildNodes()) {
                container.removeChild(container.lastChild);
            }
            for (i=0;i<number;i++){
                // Append a node with a random text
                container.appendChild(document.createTextNode("Member " + (i+1)));
                // Create an <input> element, set its type and name attributes
                var input = document.createElement("input");
                input.type = "text";
                input.name = "member" + i;
                container.appendChild(input);
                // Append a line break 
                container.appendChild(document.createElement("br"));
            }
        }
    </script>
</head>
<body>
    <input type="text" id="member" name="member" value="">Number of members: (max. 10)<br />
    <a href="#" id="filldetails" onclick="addFields()">Fill Details</a>
    <div id="container"/>
</body>
</html>


 类似资料:
  • 我读过许多关于动态添加字段集的博客和帖子,但它们都给出了非常复杂的答案。我要求的不是那么复杂。 我的HTML代码: 因此,用户将在字段中输入一个整数值(我正在使用javascript检查验证)。点击链接,会出现相应数量的输入字段供他输入。我想用javascript实现这一点。 我不是javascript方面的专家。我在想如何通过链接检索用户在字段中填写的整数,并显示相应数量的输入字段。

  • 我对JavaFX相对较新,我很困惑为什么我下面的代码没有产生预期的结果,即添加到网格中的标签。 我想做的是运行一个测试,将JavaFX标签添加到我的FXML GridPane,因为我想在不久的将来构建一个方法,允许用户选择一个文件,然后在用户选择文件时生成一个标签并将该标签添加到GridPane。 提前感谢, 代码: FXML代码是一个标准文件,其中定义了一个网格窗格,上面列出了fx:id。

  • 问题内容: 有什么好方法可以克服不幸的事实,即该代码无法按预期运行: 在理想情况下,所有必填项都将带有一个小星号,表明该字段是必需的。这种解决方案是不可能的,因为CSS插入在元素内容之后,而不是元素本身之后,但是很理想。在具有数千个必填字段的站点上,我可以将星号移动到输入的前面,而只更改一行(到),也可以将其移动到标签的末尾()或标签的前面,或收纳盒上的位置等… 这不仅很重要,不仅以防万一我改变主

  • 克服此代码无法按预期工作这一不幸事实的好方法是: 在一个完美的世界中,所有必需的

  • 问题内容: 我想将通过JSOn格式的URL接收的数据动态附加到我的列表视图中。但是我不知道它是如何工作的。 移动网站以以下格式检索对象: 在.html中,我有一个listview和一个函数,在其中尝试附加接收到的数据。我只展示身体。 也许这很容易,但是我是Web编程的新手,我不知道该如何附加检索到的数据。 有人可以帮我吗? 问题答案: 这是上述解决方案的jsfiddle(还有一个使用 代替的示例

  • 我正在尝试使用Java中的Swing制作一个GUI,它可以执行以下操作: 当按下“添加”按钮时,会创建一个JPanel,并填满图形用户界面的整个宽度。在JPanel中,JLabels将使用FlowLayout来排列,该FlowLayout告诉特定的细节(例如名称、用户ID等)。每当随后按下添加按钮时,我都希望在前面的按钮下添加一个新的JPanel,以便JScrollPane在必要时激活其垂直滚动条