2013-06-30 69 views
2

我有一個基本的網頁使用HTML和JavaScript設計來運行一個簡單的聊天程序。我無法正常工作的頁面的一部分是在提交消息時清除表單的消息字段。提交消息時,信息通過發佈數據發送到當前頁面上的iframe中的頁面,但似乎無法將它提交併清除一個特定的文本框。我已經設法處理清除框的代碼,但是提交它會把所有東西混淆起來。我想首先提交,因爲如果我清除文本框然後提交它,則消息將是空的,但是,每當我在JavaScript中使用form.submit()函數時,似乎都會出現錯誤,並且只要它擊中行,其他代碼都不會執行。我已經嘗試在alert中返回form.submit()的值,並且它總是說未定義的(也就是我是否將該命令放入alert中,還是先將其輸出到變量中)。這裏是我的代碼:Javascript的form.submit()失敗,並停止執行其餘的JavaScript代碼

<html> 
<script language="javascript"> 
    function cleartxt() 
    { 
     myform.text.value = ""; 
     myform.submit(); 
    } 
</script> 
<body bgcolor="#999999"> 
    <form name="myform" id="myform" action="chatcontent.php" method="post" target="chatwindow" onsubmit="cleartxt();"> 
     <table border="0"> 
      <tr><td><font color="#FFFFFF"><b>Name:</b></font></td> 
      <td><input type="text" name="name" maxlength="20"></td></tr> 
      <tr><td><font color="#FFFFFF"><b>Color:</b></font></td> 
      <td><input type="text" name="color"></td></tr> 
      <tr><td><font color="#FFFFFF"><b>Message:</b></font></td> 
      <td><input type="text" name="text" size="100%" autofocus="autofocus"></td> 
      <td><input type="submit" name="btnsubmit" value="Submit"></td></tr> 
     </table> 
    </form> 
    <iframe width="100%" height="80%" name="chatwindow" src="/chatcontent.php"> 
</body> 

這表明清除文本框後,正在使用的提交功能。在這種形式下,它只是清除文本框,並沒有其他任何東西。如果我交換了這兩行,它只會提交表單而不清除文本。

+0

您是否看到任何登錄到Chrome開發工具/ Firebug的錯誤? – Dogbert

+0

我不認爲你可以這樣做這項工作。 'submit'將是最後一次執行的操作 - 在頁面重新加載之後,所以在'submit'之後你不能清除你的文本,並且在提交空白消息之前清除它。如果將AJAX系統與Ajax系統結合以更新您的iframe,則提交消息的AJAX方法可能會有效。 – 2013-06-30 13:34:42

+0

我剛收到Firebug,我不知道如何看錯誤。它沒有對我立即明顯表示任何意見。 – user2536496

回答

1

初始化myform通過getElementById和嘗試,像這樣

var myform = document.getElementById('myform');

+0

我補充說,它清除,但不提交。 – user2536496

0

給輸入你想清除一些班,「清除這個」爲例。然後使用這個腳本:

<script> 
    var inputs = document.getElementsByClass('clear-this'); 
    for (var i = 0; i < inputs.length; i++) { 
     inputs[i].value = ''; 
    }​​​​ 
</script> 
1

嘗試

function cleartxt() 
{ 
    myform.text.value = ""; 

} 

<iframe width="100%" height="80%" name="chatwindow" onload="cleartxt()" src="/chatcontent.php"> 
0

相反的:

function cleartxt() 
{ 
    myform.text.value = ""; 
    myform.submit(); 
} 

可以爲您節省掉的價值,並把它變成一個隱藏字段,將與您的表單提交:

function cleartxt() 
{ 
    myform.text.txtHidField.value = myform.text.value; 
    myform.text.value = ""; 
    myform.submit(); 
} 

而這個goe在你的形式:

<input type=hidden id=txtHidField /> 

這只是,那麼,你就必須轉出哪些字段chatcontent.php期待得到的價值。或者只是將隱藏的字段命名爲「文本」,並將其輸入的文本框設置爲「txtType」之類的內容,而不必更改它。