【发布时间】:2012-01-31 09:18:33
【问题描述】:
我正在尝试在 Javascript 中构建一些基本的 HTML 表单验证。我的表单保存在一个表格中,每个输入的右侧都有一个额外的列,ID 为“ErrorX”,最初填充了一些文本以显示它是必填字段。
<FORM NAME="ContactForm" METHOD=POST ACTION='Order3.php' onsubmit="return validateForm()">
<TABLE>
<TR>
<TD ALIGN=LEFT>Your name:</TD>
<TD ALIGN=RIGHT><INPUT TYPE=TEXT ID="Field1" NAME="Field1"></TD>
<TD ALIGN=LEFT ID="Error1">Required</TD>
</TR>
</TABLE>
<input type=submit value='Confirm ->'></FORM>
按下提交按钮时,我的代码会验证字段并尝试更改最右侧的列文本。执行此操作的代码行是:
document.getElementById("Error1").innerHTML = "ERROR";
代码执行并正确检测到错误,并删除现有的措辞,但没有出现新的文本。如果我查询 document.getElementById("Error1").innerHTML 的值,我会得到正确的文本,但它没有出现在屏幕上。
我使用的是 Safari v5.1.2,它适用于我从网上复制的基本示例,所以我认为这是我的代码而不是浏览器。
【问题讨论】:
-
可能是表单被发布,因此重新加载,所以您看不到它有效吗?你在验证中返回 false 吗?
-
可能想要修复您的 HTML,大量错误(没有双引号,在提交按钮中使用
->而不是网络安全等效项),您是否偶然使用了首页? -
恕我直言,您应该在 JavaScript 之前学习 HTML 的基础知识。您的示例 HTML 看起来像 HTML 4.0,应该被 XHTML 1.x 或 HTML 5 替换。有关更多帮助,请参阅 w3schools.com/html。
-
需要更多信息。我在三个浏览器上测试了代码,包括 Windows 版本的 Safari 5.1.2,没问题,当 validateForm() 被简单地定义为进行赋值并返回 false 时。问题显然出在到目前为止所描述的部分之外的其他地方。
-
感谢您的所有帮助。我确实在验证函数中返回了 false - 但你确实让我想知道......
标签: javascript html dom innerhtml