检索动态创建元素的值

Rid*_*dle 5 html javascript

我已经创建了一个HTML表单,当我单击一个按钮时它会根据预定义的标准创建输入文本字段,这样就可以了.现在,当我尝试使用警报检索在这些创建的文本字段中输入的值时,我无法这样做.

我有两个问题

  1. 从动态创建的文本字段中检索输入的最佳方法是什么?
  2. 你能告诉我为什么我写的代码不起作用

HTML代码

<BODY>
<FORM>
    <BR/>
    <div align = "center">
        <br /><br />
        <INPUT type="button" value="Click To Enter Values" onclick="getkeywords()"/>
    </div>
    <div align="center" id="d_div">
        <form name="permavalues" id="d_form">
        </form>
        <br/> <br/>
    </div>
</FORM>
Run Code Online (Sandbox Code Playgroud)

我正在使用的javascript代码是这样的:

function getkeywords() {
    var index_array = new Array();
    var myString = "one and a two and a three = $ and four = $ and five = $";
    var splitresult = myString.split(" ");

    for(i = 0; i < splitresult.length; i++)
    {
        if (splitresult[i] == "$" && i > 1 ) //retireving the keywords..
        {   
            add(splitresult[i-2]);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在getkeywords中调用的add函数:

function add(s) {
    //Create an input type dynamically.
    var element = document.createElement("input");
    //Assign different attributes to the element.
    element.setAttribute("type", "text");
    element.setAttribute("value", s);
    element.setAttribute("name", s);
    element.setAttribute("id", s);

    var foo = document.getElementById("d_form");

    //Append the element in page (in span).
    foo.appendChild(element);
    alert("Value=" + document.getElemebtById(s).value);
}
Run Code Online (Sandbox Code Playgroud)

我认为我一定有错 element.setAtrribute("id",s);

小智 0

主要问题是您不能将表单放入另一个表单中。请删除 HTML 代码第 2 行和第 13 行。

另一个问题是你的拼写错误,正如 IvanL 所说。

其他代码都没问题。

为您提供经过充分测试的工作代码,如下所示。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>test</title>
<script language="javascript">
function getkeywords() {
    var index_array = new Array();
    var myString = "one and a two and a three = $ and four = $ and five = $";
    var splitresult = myString.split(" ");

    for(i = 0; i < splitresult.length; i++)
    {
        if (splitresult[i] == "$" && i > 1 ) //retireving the keywords..
        {   
            add(splitresult[i-2]);
        }
    }
}
function add(s) {
    //Create an input type dynamically.
    var element = document.createElement("input");
    //Assign different attributes to the element.
    element.setAttribute("type", "text");
    element.setAttribute("value", s);
    element.setAttribute("name", s);
    element.setAttribute("id", s);

    var foo = document.getElementById("d_form");

    //Append the element in page (in span).
    foo.appendChild(element);
    alert("Value=" + document.getElementById(s).value);
}
</script>
</head>
<BODY>
    <BR/>
    <div align = "center">
        <br /><br />
        <INPUT type="button" value="Click To Enter Values" onclick="getkeywords()"/>
        <br><br><br>
        <input type="button" value="add" onclick="add('tt')">
    </div>
    <div align="center" id="d_div">
        <form name="permavalues" id="d_form">
        </form>
        <br/> <br/>
    </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)