带有提交按钮的表单内的onClick函数会导致错误

时间:2014-03-19 22:41:18

标签: javascript php html forms

当我在frontend.php中使用带有onClick函数的JavaScript按钮时,会导致错误。我需要这个简单的应用程序才能完成简单的工作,但它却陷入了困境。

我提供了两个链接。首先是在表格标签(frontend.php)内,并且它不起作用 - ADDMORE BUTTON SIMESY DOESN添加了更多的文字!第二个链接没有表单标签,它可以工作,您可以尝试提交,这将留给您到welldone.php页面。

1.LINK - There is a problem

2.LINK - No form tag, no problem

HTML表格

<form action="http://www.balkanex.info/dev/frontend.php" method="post">
    Title: <br/><input type="text" name="title"><br/><br/>
    The question is: <br/><input type="text" name="ask"><br/><br/>
<br/>
    <input type="submit" name="submit" value="PROCEED"><br/>
</form>

FRONTEND.PHP文件

<script>
am = 1;
function more(index) {
        am++;
        var textarea = document.createElement("textarea");
        textarea.name = "answer" + am;
        var div = document.createElement("div");
        div.innerHTML = textarea.outerHTML;
        document.getElementById("inner1").appendChild(div);
}
</script>

<?php
echo '<form action="welldone.php" method="post">';
$content = "";
$title = $_POST['title'];
$question = $_POST['ask'];

if($_POST['ask'] != "") {
    $answer = '<textarea name="answer1"></textarea>';
    $more = '<button type="button" name="more" onClick="more();">Add more</button>';
    $content .= '1) '.$question.'<br/>'.$answer.'<br/><div id="inner1"></div>'.$more.'<br/><br/>';
}
echo $content;
echo'<br/><input type="submit" value="CALCULATE"></form>';
?>

结果WELLDONE.PHP文件

<?php
echo 'WOW, WELL DONE';
?>

1 个答案:

答案 0 :(得分:1)

问题是,当您使用more时,浏览器会使用<button name="more">而不是function more。然后,你得到

TypeError: more is not a function

此行为仅存在于表单中,这就是为什么没有表单的代码可以工作的原因。

您可以通过以下方式解决此问题:

  • 更改功能名称
  • 更改按钮名称
  • 编写不引人注目的javascript,从<script>元素而不是内联onclick属性添加事件处理程序。

无论如何,您的代码完全无效且处于怪癖模式。您应该验证它并修复错误。