当前位置: 首页 > 知识库问答 >
问题:

在Javascript中添加输入类型select with选项

席宜修
2023-03-14

我正在创建一个订单,我正在进行新的编程。其思想是,客户可以添加新的盒子,以订购一个新的产品与数量。使用这段代码,我可以创建一个包含产品的框,但我没有在产品框旁边放一个数量框。我想为产品创建一个,为数量创建另一个,当客户单击New Product时,创建一个New Product列表和数量列表或数量字段以输入值。我试着复制了文件。创建...并更改div,但我不知道如何指向另一个选择。如果你们能帮我-我很感激。谢谢.

JavaScript

 var choices = [
    "Product1",
    "Product2",
    "Product3"];

function addInput(divName) {


    var newDiv = document.createElement('div');
    var selectHTML = "";
    selectHTML="<select>";
    for(i = 0; i < choices.length; i = i + 1) {
        selectHTML += "<option value='" + choices[i] + "'>" + choices[i] + "</option>";}
    selectHTML += "</select>";
    newDiv.innerHTML = selectHTML;
    document.getElementById(divName).appendChild(newDiv);


    var Div = document.createElement('div');
    var selectHTML = "";
    selectHTML="<select>";
    for(i = 0; i < choices.length; i = i + 1) {
        selectHTML += "<option value='" + choices[i] + "'>" + choices[i] + "</option>";}
    selectHTML += "</select>";
    Div.innerHTML = selectHTML;
    document.getElementById(divName).appendChild(Div);

HTML

    <form class="new" method="post" action="phppage">

    <fieldset id="products">  <legend> PRODUCTS </legend>

        <select name="tProduct" id="cProduct">
            <optgroup label="GALLON BAG">
                <option>Product1</option>
                <option>Product2</option>
                <option>Product3</option>
                </optgroup>
            </select>
        &nbsp;<label for="cQuantity">Quantity:<span style="color:red">*</span></label>&nbsp;<input type="number" name="tQuantity" id="cQuantity" placeholder="Qnt" min="0" max="9999" required/>


        <div id="dynamicInput"></div>
        <input type="button" value="New Product" onclick="addInput('dynamicInput');" />

共有2个答案

华飞驰
2023-03-14

我想对Z.Better说声谢谢,因为我用了他发帖的想法,所以解决了这个问题,我只是做了一些改变。按照下面与我一起工作的脚本操作。我现在在用。我之所以分享这一点,是因为如果有人有这种怀疑,这就是解决之道。

    <script>
    function addInput(divName) {
        var copy = document.getElementById('forclone').cloneNode(true);
        document.getElementById(divName).appendChild(copy);
    }

</script>

而且

    <form class="new" method="post" action="phppage">

    <fieldset id="products">  <legend> PRODUCTS </legend>
        <div id = 'forclone'>
            <select name="tProduct" id="cProduct">
                <optgroup label="GALLON BAG">
                    <option>Product1</option>
                    <option>Product2</option>
                    <option>Product3</option>
                </optgroup>
            </select>

            &nbsp;<label for="cQuantity">Quantity:<span style="color:red">*</span></label>&nbsp;<input type="number" name="tQuantity" id="cQuantity" placeholder="Qnt" min="0" max="9999" required/>
        </div>



        <div id="dynamicInput"></div>
        <input type="button" value="New Product" onclick="addInput('dynamicInput');" />

null

谢谢你们,这个网站太棒了。

何高旻
2023-03-14

我的建议是,您将想要克隆的元素包装在一个div中,当用户单击按钮时克隆它,然后将它放在dynamicInput下

null

js lang-js prettyprint-override">function addInput(divName) {
    var copy = document.getElementById('forclone').cloneNode(true);
    document.getElementById(divName).appendChild(copy);
}

document.getElementById('button').onclick = function(){
    addInput('dynamicInput');
  }
 <form class="new" method="post" action="phppage">

    <fieldset id="products">  <legend> PRODUCTS </legend>
        <div id = 'forclone'>
        <select name="tProduct" id="cProduct">
            <optgroup label="GALLON BAG">
                <option>Product1</option>
                <option>Product2</option>
                <option>Product3</option>
                </optgroup>
            </select>
            
                    &nbsp;<label for="cQuantity">Quantity:<span style="color:red">*</span></label>&nbsp;<input type="number" name="tQuantity" id="cQuantity" placeholder="Qnt" min="0" max="9999" required/>
            </div>



        <div id="dynamicInput"></div>
        <input type="button" value="New Product" id = 'button' />
 类似资料:
  • 问题内容: 我正在使用下面的CSS,但是它将图像放置在按钮的中心。是否可以使用左右对齐图标,以使文本和图像适合并对齐? 问题答案: 如果您绝对必须使用,请尝试以下操作: 它通常是一个比较容易使用与内: 但是,用于提交的浏览器实现与所有按钮值都在使用时发送的事实是不一致的-这取消了多次提交形式的“单击了什么按钮”检测。

  • 问题内容: 我正在尝试提供一组可以重复或删除的输入。 我发现并使用了以下方法的组合:https : //jsfiddle.net/69z2wepo/36745/ 并且(因为上面的代码无法处理删除操作):https : //codepen.io/lichin-lin/pen/ MKMezg 我可能不需要指向一个特定的输入,因为在我的界面中,您应该始终只添加一个新的(如果之前的一个已填充)(我将在稍后

  • 我一直习惯于使用jquery或其他javascript框架,但现在我没有框架可供使用,所以我想看看是否有人知道我如何在可能的情况下使用纯javascript实现这一点。 基本上我有一个这样的div 我需要的一个是,当点击AddMore按钮时,我需要基本上添加更多的宽度和长度字段,或者创建一个完整的结构,就像上面包含所有div的结构,或者只是插入一个新的span标记,其中包含现有div下面的字段。

  • 问题内容: 我一直试图通过css更改输入按钮的背景图像,但是它不起作用。 search.html: search.css: 有什么问题吗? 甚至内联css似乎也不起作用。 问题答案: 您需要输入不带单词的单词。 两种方法都经过测试,这一方法可行。 例:

  • 问题内容: 由于IE9和Safari-5不支持,因此有什么替代的跨浏览器解决方案? 解决方案 必须 至少在 IE 9 , Safari 5 ,FireFox 4,Opera 11.5和Chrome中运行。 问题答案: 处理没有框架/库的类的一种方法是使用Element.className属性,该属性“ _获取并设置指定元素的class属性的值。 正如在他的回答中已经提到的那样,一旦获得了元素的类字

  • 问题内容: 当我尝试获取Integer类型的输入时,我只需要做的就是下面的代码。 但是当涉及到BigInteger时,我不知道该怎么办。如何读取用户的BigInteger类型输入? 问题答案: 参考:Scanner#nextBigInteger