0

以下是我的问题的简要概述:

我有一个 JavaScript 函数,它获取一堆表单字段的值,然后将它们组合到另一个名为 outputArea 的变量中,然后我使用相同的函数将名为“outputArea”的文本区域的值更改为我为 outputArea 创建的值在 JScript (document.thisForm.outputArea.value = outputArea) 中。

但是当我按下调用该函数的“制作我的笔记”按钮时,它会抓取变量,触发我的警报以转储变量以确保其工作,然后输出到我想要它的表单字段......但是,立即函数完成后,它会自行清除。就其本身而言,我的意思是整个表单都被清除了,包括 outputArea。

我已经多次检查了我的源代码,并且有 0 个对重置按钮的引用或在调用函数后应该清除这些值的任何内容,所以我很茫然。

以下是我的功能:

<script type="text/javascript">
    function getNotes() {
        var spokeTo = document.thisForm.spokeWith.value;
        var problemWith = document.thisForm.problemWith.value;
        var resolvedBy = document.thisForm.resolvedWith.value;
        var thisTech = document.thisForm.techName.value;
        var liveChat = document.thisForm.onLiveChat.value;
        var passTo = document.thisForm.passTo.value;
        var fSpace = ".  ";
        var fSign = "  - ";

        alert(spokeTo + problemWith + resolvedBy + thisTech);

        outputValue = 'Spoke with: ' +spokeTo + fSpace + problemWith + resolvedBy + passTo + fSign + thisTech;
        document.thisForm.outputArea.value = outputValue;
        alert('DISMISS');
    }

调用该函数的按钮很简单:

<input type="submit" class="button" value="Make My Notes!" onClick="javascript:getNotes();" tabindex="4" style="margin-right:1em;" />

和输出字段:

<textarea name="outputArea" id="outputArea" onClick="this.select();" readonly="yes"></textarea>

我添加了警报('DISMISS');试图看看我是否可以(暂时)通过强制用户按 OK 来阻止表单清除自己,但奇怪的是,它在调用 document.thisForm.outputArea.value = outputValue 之前调用了 Alert,我不明白。在它调用它并输出之后,它会立即清除每个表单字段。这是目前整个页面唯一的javascript功能,并且看不到任何重置按钮。

我以前做过很多事情,实际上有一个使用类似方法的应用程序现在正在运行并且工作正常,所以我完全感到困惑。我到底做错了什么?

我非常感谢任何花时间为我研究这个问题的人。干杯!

4

1 回答 1

2

在我看来,这实际上看起来像您的页面正在刷新,因为按钮正在执行提交操作。将您的活动更改onClick为:

onClick="getNotes(); return false;"

因为这是生成一个 POST 请求(可能是对它自己),所以页面就像是第一次加载一样。

于 2012-06-13T16:12:00.633 回答