2013-06-30 72 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”之类的内容,而不必更改它。