这是我的问题的简短摘要:

我有一个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之前调用了Alert。thisForm.outputArea.value= outputValue,我不明白。调用并输出后,立即清除每个表单字段。目前,这是整个页面上唯一的javascript函数,并且在任何地方都没有重置按钮。

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

我非常感谢任何人花时间为我研究此内容。干杯!

最佳答案

在我看来,这实际上是因为您的页面正在刷新自身,因为该按钮正在执行提交操作。将您的onClick事件更改为此:

onClick="getNotes(); return false;"


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

10-06 10:09