簡體   English   中英

動態添加選擇框

[英]Adding select boxes dynamically

我做了一個簡單的動態表單來生成輸入框。

<body>
    <div id="main1">
        <input type="button" onclick="addSelectBox ()" name="clickme" value="+"/>
<input type="button" onclick="removeSelect();" value="-"/>

<input type="button" onclick="xmlData();" value="XML" />

    </div>
    <div id="main">
    </div>

  </body>

這是JavaScript代碼:

 (function () { 

var selele=0;
    var brindex=0;
   function addSelectBox() {

    selele = selele + 1;
    var spantag = document.createElement("span");
    spantag.setAttribute("id", selele);

    var parentDiv = document.getElementById("main");
    var selectElement = document.createElement("select");
    var selectElement1 = document.createElement("select");
    var selectElement2 = document.createElement("select");
    var selectElement3 = document.createElement("select");

    var arr = new Array("Stocks", "MutualFunds");
    var arr2 = new Array("individual", "401k", "IRA");
    var arr3 = new Array("contains", "equals");
    var arr4 = new Array("scrapedaccounttype", "scrapedtransactiontype");
    var textbox = document.createElement('input');

    for (var i = 0; i < arr.length; i++) {
        var option = new Option(arr[i]);
        selectElement.options[selectElement.options.length] = option;


    }


    for (var i = 0; i < arr2.length; i++) {
        var option = new Option(arr2[i]);
        selectElement1.options[selectElement1.options.length] = option;


    }

    for (var i = 0; i < arr3.length; i++) {
        var option = new Option(arr3[i]);
        selectElement2.options[selectElement2.options.length] = option;


    }
    for (var i = 0; i < arr4.length; i++) {
        var option = new Option(arr4[i]);
        selectElement3.options[selectElement3.options.length] = option;


    }



    spantag.appendChild(selectElement);
    spantag.appendChild(selectElement1);
    spantag.appendChild(selectElement2);
    spantag.appendChild(selectElement3);
    spantag.appendChild(textbox);


    parentDiv.appendChild(spantag);
    linebreak();

};
 function removeSelect() {
    var parentDiv = document.getElementById("main");
    var removetg = document.getElementById(selele);
    if (selele != 1) {
        parentDiv.removeChild(removetg);
        selele = selele - 1;


    } else {
        parentDiv.removeChild(removetg);
        parentDiv.innerHTML = "";
        selele = selele - 1;
    }
    removeBreak();
};

 function linebreak() {

    brindex = brindex + 1;
    var brtag = document.createElement("br");
    brtag.setAttribute("id", brindex);
    var parentDiv = document.getElementById("main");
    parentDiv.appendChild(brtag);
};
 function linespace() {

    var myElement = document.createElement("span");
    myElement.innerHTML = "&nbsp &nbsp &nbsp &nbsp &nbsp &nbsp";
    var parentDiv = document.getElementById("main");
    parentDiv.appendChild(myElement);
};
 function removeBreak() {
    var myElement = document.getElementById(brindex);
    var parentDiv = document.getElementById("main");
    brindex = brindex - 1;
    parentDiv.removeChild(myElement);
};
 function xmlData() {


    xmlDoc = loadXMLDoc("data.xml");

    newel = xmlDoc.createElement("edition");

    x = xmlDoc.getElementsByTagName("span")[0];
    x.appendChild(newel);

};

 });

我無法在jsFiddle上使用它,按鈕不起作用。

如果我將其嵌入標簽中,它們可以正常工作。

誰能幫我解決這些問題。

編輯:我想我是匿名添加的,因為我希望全局為所有這些功能使用var selele and brindex

我已經更改了代碼。

的jsfiddle

您的函數在匿名函數中,因此無法從外部使用。

首先從匿名函數中刪除代碼(請參見此處: http : //jsfiddle.net/uH84W/6/ ),然后修復您收到的控制台錯誤(我想並不是全部代碼)。

    function addSelectBox() {...

在您的小提琴中選擇onload,但是將onload更改為無扭曲或無扭曲,現在工作正常

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM