我正在尝试在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,它使用我从网上复制的基本示例,所以我认为这是我的代码而不是浏览器。
答案 0 :(得分:3)
innerHTML
在safari中肯定有用。请参阅此演示http://jsfiddle.net/zxMKM/
显而易见的原因是你的html标记无效,浏览器会自行进行错误恢复并在此过程中生成自己的DOM。
因此,请验证您的html http://validator.w3.org/
另请注意,td.innerHTML
仅适用于IE8
因此,它更易于使用td.innerText
答案 1 :(得分:0)
我在iPAD safari上有类似的问题,它没有正确更新div值。 我已经浏览了很多帖子并尝试了很多选项,但对我有用的是 text()。
答案 2 :(得分:-2)
<td align="left"><div id="Error1">Required</div></td>