5

i HTML フォームを作成しました。このフォームでボタンをクリックすると、定義済みの基準に基づいて入力テキスト フィールドが作成されます。これは正常に機能します。アラートを使用して、作成されたテキスト フィールドに入力された値を取得しようとすると、取得できません。

2つの質問があります

  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

動的に作成されたテキスト フィールドから入力を取得する最良の方法は何ですか?

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 に答える
0

主な問題は、別のフォーム内にフォームを配置できないことです。HTML コードの 2 行目と 13 行目を削除してください。

もう 1 つの問題は、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 に答える