HTML Web 浏览器兼容性(IE8、Chrome)
HTML web browser compatibility (IE8, Chrome)
我是一名嵌入式程序员。
我正在开发一个网络 GUI,但遇到了一个问题 - 网络浏览器兼容性。
代码在 Chrome 中正常执行,但在 Internet Google 浏览器中无法正常执行。
Internet Explorer 8 之后,必须执行代码。
我认为这是一个Web标准问题。也许我的HTML知识很差。
function validateForm() {
var x = document.forms["form_dl_rf_set"]["DL_RF_2000_id"].value;
if (x == 1) {
var y = document.forms["form_dl_rf_set"]["DL_RF_2000_num"].value;
if (!y) {
alert("error ");
return false;
}
}
}
<form name="form_dl_rf_set" action="dl_rf_set.cgi" method=post onsubmit="return validateForm()">
<input type="radio" id="DL_RF_2000" name="DL_RF_2000_id" value="0"checked="checked">
<label for="DL_RF_2000">変更しない<label>
<td>
<input type="radio" id="DL_RF_2000" name="DL_RF_2000_id" value="1">
<label for="DL_RF_2000"> <input type="number" id="DL_RF_2000" name="DL_RF_2000_num" min="-10.0" max="2.0" step="0.5" size="4" value=-1.0> dB</label>
函数说明 - 检查空白。
这是一个评论,而不是答案,因为不可能从OP中确定问题。 希望这将有助于找到问题,以便提供答案。
发布的代码不完整,没有提交按钮或提交表单的方法。添加提交按钮可以解决此问题,但可能与实际代码不一致。
在 validateForm 函数中,有:
var x = document.forms["form_dl_rf_set"]["DL_RF_2000_id"].value;
表单中有多个名称为"DL_RF_2000_id"的控件,因此表达式为:
document.forms["form_dl_rf_set"]["DL_RF_2000_id"]
将返回这些元素的节点列表。NodeList 没有 value 属性,因此 x 将是未定义的。然后是:
if (x == 1)
这将始终为 false,因此该函数返回 undefined 并提交表单。这将发生在所有浏览器中,而不仅仅是IE。
我看到有几个问题,第一个是 ID 需要是唯一的......
尝试。。。
<form name="form_dl_rf_set" action="dl_rf_set.cgi" method=post onsubmit="return validateForm()">
<input type="radio" id="DL_RF_2000_id" name="DL_RF_2000_id1" value="0" checked="checked" />
<label for="DL_RF_2000">変更しない</label>
<input type="radio" id="DL_RF_2000_id2" name="DL_RF_2000_id2" value="1" />
<label for="DL_RF_2000"> </label>
<input type="number" id="DL_RF_2000_num" name="DL_RF_2000_num" min="-10.0" max="2.0" step="0.5" size="4" value="-1.0"> dB
我还清理了一些关闭标签问题(并删除了<td>
标签,因为它似乎不需要在那里。
请注意,所有标签现在都有唯一的 ID,现在可以干净地引用这些 ID。
更新:我看到的另一个问题是重复使用这些名称。 这也在上面的代码中进行了调整。
此外,还有一个没有引号的值。
相关文章:
- 在 Chrome 中打开电子邮件中的网址/链接,而不是默认浏览器 IE8
- window.onbeforeunload在IE8中不触发(在Firefox,Chrome和Safari中工作正常)
- 如何在不按ctrl+F5的情况下更新我的Web应用程序(chrome、mozilla、IE8+)更改
- 在KoGrid中使用knockoutjs不适用于Chrome或FF,但适用于IE8
- 自定义Angular.js过滤器在IE8中不返回任何内容,在Chrome/FF中运行良好
- 错误:“null”为空或不是IE8中的对象,而不是Chrome或Firefox
- 从 http 处理程序返回的 JSON 在 IE8 中为空,但在 IE10 或 Chrome 中不是
- HTML Web 浏览器兼容性(IE8、Chrome)
- Chrome/FF 与 IE8 中的搜索框对齐方式
- 功能在IE8中运行良好,但在Chrome、Mozilla、safari中则不然
- $.getJSON适用于Chrome和IE8+,但不适用于Firefox32.0.1
- Firefox和Chrome中的Ajax POST问题,但IE8除外
- IE8 .click()在请求完成之前被终止,适用于chrome和FF
- ie8和chrome的传单问题
- 可以在IE8中使用Javascript,但不能在chrome和safari等最新浏览器中使用
- Jquery ajax适用于Chrome和Safari,但不适用于IE8和Firefox
- innerHTML写上.value适用于IE9 IE8,但不适用于IE10, Firefox, Chrome
- Javascript插入的元素在Firefox中出现/更新&Chrome,但不是ie8
- 如何做一个跨域AJAX请求在IE8与Chrome框架
- javascript onclick不能在chrome和IE8中工作,但可以在firefox 7.0.1中工作