我正在尝试这样做,以便当您单击按钮时,它会向页面添加新字段。我知道onclick只能使用JS函数,所以我决定尝试运气制作JS脚本。起初我曾尝试过
<html>
<head><title>multiple line test</title><head>
<body>
<script type="text/javascript">
var texters='';
var num=0;
function newInput(nomnom)
{
texters='';
num=nomnom+1;
for (var i=0; i<nomnom; i++)
{
texters+='<p>\
Please specify a file, or a set of files:<br>\
<input type="file" size="40">\
</p>\
<p>\
Caption : <br> \
<input type="text" size="30">\
</p>';\
}
document.write(texters+'<div>\
<input type="submit" value="Send">\
</div>\
</form>\
<br>' + '<input type="button" value="new entry" onclick="newInput(num)">' . '</body></html>');
}
newInput(num);
</script>
</body>
</html>
但这不起作用。所以我尝试添加一点点php,因为我知道它更好。我试过这个:
<html>
<head><title>multiple line test</title><head>
<body>
<script type="text/javascript">
var texters='';
var num=0;
function newInput(nomnom)
{
document.write(<?php
tex='';
for (var i=0; i<=(nomnom); i++)
{
tex.='<p>
Please specify a file, or a set of files:<br>
<input type="file" size="40">
</p>
<p>
Caption : <br>
<input type="text" size="30">
</p>';
}
echo tex . '<div>
<input type="submit" value="Send">
</div>
</form>
<br>' . '<input type="button" value="new entry" onclick="newInput(num)">' . '</body></html>';
?>);
}
newInput(num);
</script>
</body>
</html>
但是我知道这不起作用,因为我无法获取我用于JS和PHP中使用的字段数量的变量。有什么方法可以强制JS把这个数字放在$ _POST中,这样我就可以在不用另一个表单的情况下检索它了吗?或者有更好的方法来做我想做的事情吗?
答案 0 :(得分:2)
您可以在表单上设置隐藏的输入字段,并使用Javascript填充该字段。
答案 1 :(得分:2)
您应该尝试使用jquery http://jquery.com/或simialr脚本库,因为这样可以更轻松地操作DOM。使用jquery,您可以创建一个onClick函数,它可以在几行代码中执行您想要的操作:
var onClickAddInput = function()
{
$('div#your_div_id').append('<input type="text" size="30" />');
}
如果你需要添加更多输入框,你可以循环append语句并给出与循环数相等的单个输入框id。
答案 2 :(得分:1)
评论的PHP用于服务器端,javascript用于客户端。 html是可以创建的ui元素。如果您需要在服务器上完成某些操作,请在PHP中执行,如果需要在客户端上完成,请在javascript中执行。以下是javascript的示例。
function newInput(nomnom)
{
var tex='';
for (var i=0; i<=(nomnom); i++)
{
tex+='<p>Please specify a file, or a set of files:';
tex+='<br/><input type="file" size="40"></p>';
tex+='<p>Caption :';
tex+='<br/><input type="text" size="30"></p>';
}
document.getElementById('form_id').innerHTML += tex;
}
调用此函数时,它将创建许多新输入并将其添加到ID为“form_id”的表单中。