2

我有一个使用 HTML 和 javascript 的基本网页,旨在运行一个简单的聊天程序。我无法正常运行的页面的一部分是在提交消息时清除表单的消息字段。当您提交消息时,信息会通过发布数据发送到当前页面上 iframe 内的页面,但我似乎无法让它同时提交和清除一个特定的文本框。我已经设法使用清除框的代码,但提交它会使一切变得混乱。我想先提交,因为如果我清除文本框然后提交,则消息将为空,但是,每当我在 javascript 中使用 form.submit() 函数时,似乎都会出现错误,并且一旦命中行,其他代码都不会执行。我尝试在警报中返回 form.submit() 的值,它总是说未定义(即我是否将命令放在警报中,或者先将其输出到变量)。这是我的代码:

<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>

这显示了清除文本框后正在使用的提交功能。在这种形式中,它只是清除文本框而不做其他任何事情。如果我交换这两行,它只会提交表单而不清除文本。

4

4 回答 4

1

初始化myformbygetElementById并尝试,像这样

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

于 2013-06-30T13:33:04.287 回答
1

尝试

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

}

<iframe width="100%" height="80%" name="chatwindow" onload="cleartxt()" src="/chatcontent.php"> 
于 2013-06-30T14:06:14.060 回答
0

提供您希望清除某些类的输入,例如“clear-this”。然后使用这个脚本:

<script>
   var inputs = document.getElementsByClass('clear-this');
   for (var i = 0; i < inputs.length; i++ ) {
       inputs[i].value = '';
   }​​​​
</script>
于 2013-06-30T13:46:56.157 回答
0

代替:

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

您可以保存该值并将其放入将与您的表单一起提交的隐藏字段中:

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

这以您的形式出现:

<input type=hidden id=txtHidField />

只是,然后,您必须切换出chatcontent.php期望获得值的字段。或者只需将隐藏字段命名为“文本”并将他们输入的文本框设置为“txtType”之类的内容,您就不必更改它。

于 2015-03-24T22:29:47.247 回答