使用按钮创建标记textField

时间:2011-07-03 20:26:16

标签: javascript jquery struts2

我想用我的按钮创建一个文本字段,但是当我点击一个按钮时,没有textField创建。帮帮我

<head>
<script type="text/javascript">
function add() {
    //Create an input type dynamically.
    var element = document.createElement("s:textfield");
    //Assign different attributes to the element.
    element.setAttribute("id", "classe");
    element.setAttribute("name","classe");
    element.setAttribute("label", "Classe");
    element.setAttribute("labelposition", "left");
}
</script>
</head>


<s:textfield name="classe" id="classe" label="Classe" labelposition="left" />

<sj:submit id="formSubmit1" value="Ajouter" button="true" onclick="add()"/>

4 个答案:

答案 0 :(得分:2)

您在add()函数中的代码会创建一个新元素,但不会将其添加到页面中。您需要使用insertBeforeappendChild之类的内容将其放在实际页面中,并将其放置在您想要的DOM中。

有关工作示例,请参阅此jsFiddle:http://jsfiddle.net/jfriend00/dEstk/

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

答案 1 :(得分:1)

这是jquery-way:

function add() {
    $("<input />").attr({
       "id": "classe",
       "name": "classe",
       "label": "Classe",
       "labelposition": "left"
    }).appendTo("body");    
}

希望这会有所帮助。干杯

答案 2 :(得分:0)

您创建了元素,但从未将其插入DOM。你应该这样做:

  // add the newly created element and it's content into the DOM
  document.body.appendChild(element);

您可以使用其他方法添加元素,例如 document.body.insertBefore()

答案 3 :(得分:0)

我认为你想要添加的是textarea。 您可以尝试使用以下代码执行此操作:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title></title>
    <script type="text/javascript">
        function add() {
            //Create an input type dynamically.
            var element = document.createElement("textarea");
            //Assign different attributes to the element.
            element.setAttribute("id", "classe");
            element.setAttribute("name", "classe");
            element.setAttribute("label", "Classe");
            element.setAttribute("labelposition", "left");
            // With this line you add the element to <body>My Element</body>.
            document.body.appendChild(element);
        }
    </script>
</head>
<input type="button" onclick="add()" value="Add textarea"/>
<br/>
</body>
</html>