当我在我的php文件中放置表单标签时,我的javascript函数addmore(索引)停止工作。我无法理解为什么?没有表单标签,它可以工作,但我没有提交按钮。
在我的HTML中有几个文字,我在哪里插入用户的问题
<textarea name"que[1]"></textarea>
<textarea name"que[2]"></textarea>
<textarea name"que[3]"></textarea>
我的PHP文件应该带有答案字母提出问题 - 然后用户提交
<?php
<form action="result.php" method="post">
$content = "";
$question = $_POST['que'];
$length = count($_POST['que']);
for($j=1; $j<$length+1; $j++) {
if($_POST['pitanje'][$j] != "") {
$area = '<textarea name="ans'.$j.'1"></textarea>';
$addmore = '<button type="button" name="addmore" onClick="addmore('.$j.');">Add more</button>';
$content .= $j.') '.$question[$j].'<br/>'.$area.'<br/><div id="inner'.$j.'"></div>'.$addmore.'<br/><br/>';}}
echo $content;
echo'<br/><input type="submit" value="CALCULATE"></form>';
?>
我的JAVASCRIPT文件用于增加更多答案字段的功能
var am = [];
for(var i=1; i<101; i++){
am[i] = 1;}
function addmore(index) {
am[index]++;
var textarea = document.createElement("textarea");
textarea.name = "ans" + index + am[index];
var div = document.createElement("div");
div.innerHTML = textarea.outerHTML;
document.getElementById("inner"+index).appendChild(div);
}
答案 0 :(得分:0)
可能是按钮触发表单提交。试试这个:
onClick="return addmore('.$j.');">
.....
function addmore(index) {
....
return false;
}
答案 1 :(得分:0)
在我看来,错误是因为表单标签没有被回显或分配给变量。
答案 2 :(得分:0)
选项......
button name
function
name
button
<input type="button" />
代替<button></button>
......任何人都应该这样做。
像
<button name="buttonName" onclick="functionName()">addnew in html?</button>
<button name="buttonName" onclick="otherFunctionName()">addnew</button>
<button onclick="functionName()">addnew</button>
或只是
<input type="button" value="addnew" onclick="functionName()" />
答案 3 :(得分:-1)
我想奥斯汀是对的,我尝试使用表格外的按钮,然后就可以了。
如果你从这样的表格标签中移出按钮,它会起作用,你有一个&#34; addmore&#34;按钮在右上方,并在下面获得尽可能多的textareas(一个html页面在e jsfiddle或simmilar中说明):
<!DOCTYPE html>
<html>
<script type="text/javascript">
var am = [];
for(var i=1; i<101; i++){
am[i] = 1;}
function addmore(index) {
am[index]++;
var textarea = document.createElement("textarea");
textarea.name = "ans" + index + am[index];
var div = document.createElement("div");
div.innerHTML = textarea.outerHTML;
document.getElementById("inner"+index).appendChild(div);
}
</script>
<body><button type="button" name="addmore" onClick="addmore(1);">Add more</button>
<form action="result.php" method="post">1) $_POST["que"]<br/><textarea name="ans11"></textarea><br/><div id="inner1"></div><br/><br/><br/><input type="submit" value="CALCULATE"></form>
</body>
</html>
我也找到了这个解决方案,可以解决它。你需要
这突出了两个解决方案:
<?php
echo '<!DOCTYPE html>
<html>
<script type="text/javascript">
var am = [];
for(var i=1; i<101; i++){
am[i] = 1;}
function addmore(index) {
am[index]++;
var textarea = document.createElement("textarea");
textarea.name = "ans" + index + am[index];
var div = document.createElement("div");
div.innerHTML = textarea.outerHTML;
document.getElementById("inner"+index).appendChild(div);
}
</script>
<body>';
$content = "";
$question = 'question:';
$length = 99;
$j =1;
$addmore = '<button type="button" name="addsmore" onClick="addmore('.$j.');">Add more</button>';
echo $addmore;
echo '<form action="result.php" method="post">';
$area = '<input type="button" value="Add 2more" name="addsdmore" onClick="addmore('.$j.');"></input>
<textarea name="ans'.$j.'1"></textarea>';
$content .= $j.') '.$question.'<br/>'.$area.'<br/>
<div id="inner'.$j.'"></div><br/><br/>';
echo $content;
echo'<br/><input type="submit" value="CALCULATE"></form>';
echo '</body>
</html>';
?>