5

我已经创建了一个 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>

我正在使用的 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]);
        }
    }
}

在 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);
}

我想我一定有一个错误element.setAtrribute("id",s);

4

3 回答 3

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>
于 2012-11-21T12:09:02.500 回答
0

从动态创建的文本字段中检索输入的最佳方法是什么?

我将使用 JQuery 遍历所有文本输入元素的表单并检索它们各自的值。

或者,您可以为每个文本字段指定一个通用名称,例如“txt_”,然后将增量 ID 附加到字符串(IE -- txt_1、txt_2、txt_3、...),然后以编程方式迭代匹配的表单字段,直到您已达到表示可用表单域总数的值。该值可能是一个 JavaScript 整数。

例如...

$("form input[type='text']").each( function() 
{ 
    // gets text value for each field in the form
    var textFieldValue = this.value;

    // do stuff
});
于 2013-04-24T02:10:21.017 回答
0

查看获取所有输入值的 Jquery 代码。

$(document).ready(function()
{
    $('form#d_form input[type="text"]').each(
    function()
    {
         alert($(this).val());
    });
});
于 2013-05-21T18:38:19.733 回答