2012-06-13 55 views
0

這裏是我的問題的簡要說明:將表單字段輸出到textarea的JavaScript以輸出textarea結尾,但立即清除它自己?

我有一個JavaScript函數獲取一堆表單字段的值,然後將它們組合到另一個名爲outputArea的變量中,然後使用相同的函數來更改值一個名爲「outputArea」的textarea與我爲JScript中的outputArea創建的值(document.thisForm.outputArea.value = outputArea)。

但是當我按下調用該函數的「Make My Notes」按鈕時,它抓住變量,命中我的警報以轉儲變量以確保其工作,然後輸出到表單字段,我希望它。但是,在函數完成後立即清除它自己。本身,我的意思是整個表格清除,包括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> 

我加警報('DIS小姐');嘗試查看是否可以通過強制用戶按下OK鍵來暫時停止表單,但奇怪的是,它在調用document.thisForm.outputArea.value = outputValue之前調用Alert,我不明白。在它調用並輸出之後,它立即清除EVERY表單字段。這是目前在整個頁面上唯一的javascript功能,並且在任何地方都沒有重置按鈕。

我已經完成了這個噸之前,實際上有一個類似的方法運行和正常工作的應用程序,所以我完全困惑。我在這裏做錯了什麼?

我非常感謝任何花時間爲我着想的人。乾杯!

回答

2

這實際上在我看來像你的頁面刷新自己,因爲按鈕正在執行提交操作。您onClick事件改成這樣:

onClick="getNotes(); return false;" 

因爲這是產生一個POST請求(可能是本身),頁面加載,就好像是第一次。

+0

你知道什麼有趣嗎?只要我發佈這個,並重新閱讀我的文章(第三次,因爲我不喜歡張貼不好的問題),我注意到我正在做type =「submit」而不是type =「button」,這是什麼我正在使用我的其他網頁,工作正常。我現在覺得很蠢,但是你的快速反應非常棒,非常感謝,並且非常完美。澄清:對此的答案是使用return false; onClick,或者不使用提交類型,請使用type =「button」。 –

+0

非常感謝您的即時回覆。我喜歡這個地方。對不起,這是一個簡單的修復:p –

+0

@MorganMarch:沒問題。我一直忽略了大量的東西。有時候,僅僅在問題上另闢蹊徑就足夠了,或者將它解釋給某個我通常最終會看到我做錯了什麼的人。 –