javascript - 如何根据用户输入的数字动态地将文本字段添加到表单

标签 javascript jquery

我正在尝试制作一个表单,要求用户提供一些单元,然后询问他们是否希望提供这些单元,并根据答案生成与单元数对应的文本字段输入的,以及要求提供帐号的文本字段。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js">

</script>


<script type="text/javascript">

function Getunits(value) {
var units = document.getElementById('units');
for(count=0; count<=units; count++) {
$("<input type='text'>").appendTo("inpane");
 }
document.getElementByTag('futureacc').InnerHTML='What is your account number? <input type="text" value="accountnum">';

}
</script>
</head>
<body>
<div id="container">
<form method="post" action="sendcontact.php">
<div id="unitammount" class="inpane">
Number of units ordered: <input type="text" name="units" id="units"/><br />
</div>

<div id="futureacc" class="inpane">
Are these units to be provisioned? <input type="radio" name="select" value="yes" onClick="Getunits('units.value')"/> Yes <input type="radio" name="select" value="no"/> No
</div>

显然,我希望新的文本字段分别出现在 futureacc div 和 inpane div 中。

我不知道是循环没有做任何事情还是我没有正确附加,但正如我目前所拥有的那样,它什么也没做......

如有任何帮助,我们将不胜感激。

最佳答案

您的代码有很多错误。这很困惑,因为你混合了 jQuery 和纯 Javascript。如果您无论如何都决定使用 jQuery,通常最好只使用它。您的循环应该在小于 units.val() 时进行迭代,而不是在小于或等于 units 时进行迭代。 innerHTML 拼写为小写“i”,您的 appendTo 选择器需要在类名前加一个句点。我继续清理了您的代码,现在它应该可以工作了!

HTML:

<div id="container">
    <form method="post" action="sendcontact.php">
        <div id="unitammount" class="inpane">
              Number of units ordered: <input type="text" name="units" id="units"/>
        </div><br>

        <div id="futureacc" class="inpane">
            Are these units to be provisioned? <input type="radio" name="select" value="yes" onClick="getUnits()"/> Yes <input type="radio" name="select" value="no"/> No <br>
        </div>
    </form>
</div>​

Javascript:

function getUnits() {
    var units = $("#units").val();
    for (var count = 0; count < units; count++) {
        $("<input type='text' /><br>").appendTo("#futureacc");
    }
    $("#futureacc").append('<br>What is your account number? <input type="text" placeholder="accountnum">');
}​

WORKING DEMO

关于javascript - 如何根据用户输入的数字动态地将文本字段添加到表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12000504/

相关文章:

javascript - jquery 在来自数据库的 php cicle 中悬停时显示 div

javascript - 如何在 Chrome/Safari 中调试 EJS 代码

javascript - 在jquery中通过this获取其他函数上的DOM元素的访问

javascript - 如何创建一个带有延迟/超时的 JavaScript 书签?

javascript - 为什么 JQuery show() 函数只对一个(而不是所有)带有选择器的元素起作用?

javascript - jqplot 当鼠标悬停在一行上时突出显示一条线

javascript - 从 json 创建一个列表返回 [object Object] 并且只返回最后一个 li

javascript - 单击使用这些 id 在 javascript 中获取此变量

javascript - While 循环和innerHTML

javascript - 在 onchange 事件 jQuery 之后获取下拉列表的前一个值