Javascript form.submit()失败并停止执行其余的Javascript代码
Javascript form.submit() fails and stops rest of javascript code from executing
我有一个使用HTML和javascript的基本网页,旨在运行一个简单的聊天程序。页面中我无法正常工作的一部分是在提交消息时清除表单的消息字段。当你提交消息时,信息会通过发布数据发送到当前页面iframe中的一个页面,但我似乎无法同时提交和清除一个特定的文本框。我已经设法完成了清除框的代码,但提交它会把一切都搞砸。我想先提交,因为如果我清除文本框然后提交,消息将为空,然而,每当我在javascript中使用form.submit()函数时,似乎都会出现错误,一旦它到达那一行,其他代码都不会执行。我试过在警报中返回form.submit()的值,它总是说undefined(也就是说,我是把命令放在警报中,还是先把它输出到变量中)。这是我的代码:
<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>
这显示了清除文本框后正在使用的提交功能。在这个表单中,它只清除文本框,不做任何其他操作。如果我交换了这两行,它只会提交表单而不清除文本。
通过getElementById
初始化myform
并尝试,就像这个
var myform = document.getElementById('myform');
尝试
function cleartxt()
{
myform.text.value = "";
}
<iframe width="100%" height="80%" name="chatwindow" onload="cleartxt()" src="/chatcontent.php">
给想要清除某个类的输入,例如"clear this"。然后使用这个脚本:
<script>
var inputs = document.getElementsByClass('clear-this');
for (var i = 0; i < inputs.length; i++ ) {
inputs[i].value = '';
}
</script>
代替:
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
期望获得值的字段。或者只需将隐藏字段命名为"text",并将他们键入的文本框设置为类似"txtType"的内容,您就不必更改它。
相关文章:
- JavaScript执行暂时挂起页面
- 页面在我的javascript执行后重新加载,我不希望它这样做
- 如何在使用jQuery.html()时防止javascript执行
- 如何打开一个新窗口或选项卡,并将其提供给javascript执行
- 如何在Ajax加载新内容时停止JavaScript执行
- 如何使用xpath和Javascript执行器打印文本
- cakehp2.x用javascript执行控制器
- 如何在不使用javascript执行的情况下为函数分配参数
- Javascript执行顺序错误
- Javascript执行顺序和回调
- 如何在Javascript执行后防止浏览器锁定
- JavaScript执行从函数声明开始,而不是从$(document).ready()开始
- 在asp.net页面中显示javascript执行过程中的加载图标
- 基于浏览器窗口大小的条件 JavaScript 执行
- 使用 JavaScript 执行一行 PHP(不包括 PHP 文件)
- Dom 解析和 JavaScript 执行
- 为什么通过javascript执行php可以工作
- JavaScript执行路径
- 从javaScript执行服务器端代码
- 如何使用Javascript执行客户端web抓取