Javascript HTML web浏览器兼容性(IE8、Chrome)

Javascript HTML web浏览器兼容性(IE8、Chrome),javascript,html,internet-explorer-8,browser,Javascript,Html,Internet Explorer 8,Browser,我是一名嵌入式程序员。 我正在开发一个web GUI,但遇到了一个问题—web浏览器兼容性 该代码在Chrome中正常执行,但在InternetExplore中不正常 在Internet Explorer 8之后,必须执行到代码 我认为这是一个网络标准问题。也许我的HTML知识很差 function validateForm() { var x = document.forms["form_dl_rf_set"]["DL_RF_2000_id"].value; if (x =

我是一名嵌入式程序员。
我正在开发一个web GUI,但遇到了一个问题—web浏览器兼容性

该代码在Chrome中正常执行,但在InternetExplore中不正常

在Internet Explorer 8之后,必须执行到代码

我认为这是一个网络标准问题。也许我的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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  <input type="radio" id="DL_RF_2000" name="DL_RF_2000_id" value="1">
  <label for="DL_RF_2000">&nbsp;<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>&nbsp;dB</label>
函数validateForm(){
var x=document.forms[“form_dl_rf_set”][“dl_rf_2000_id”]。值;
如果(x==1){
var y=document.forms[“form_dl_rf_set”][“dl_rf_2000_num”]值;
如果(!y){
警报(“错误”);
返回false;
}
}
}
変更しない
分贝

功能描述-检查是否为空。

我看到了几个问题,第一个问题是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">&nbsp;</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">&nbsp;dB

変更しない
分贝
我还清理了一些关闭标签的问题(并删除了
标签,因为它似乎不需要在那里

请注意,所有标记现在都有唯一的ID,可以干净地引用

更新: 我看到的另一个问题是名称的重复使用。这也在上面的代码中进行了调整


此外,还有一个没有引号的值。

这是一个注释,不是一个答案,因为不可能从OP中确定问题。希望它有助于找到问题,以便提供答案

发布的代码不完整,没有提交按钮或提交表单的方式。添加提交按钮可以解决此问题,但可能与实际代码不一致

在validateForm函数中,有:

    var x = document.forms["form_dl_rf_set"]["DL_RF_2000_id"].value;
if (x == 1) 
表单中有多个名为“DL_RF_2000_id”的控件,因此表达式为:

document.forms["form_dl_rf_set"]["DL_RF_2000_id"]
将返回这些元素中的一个。节点列表没有value属性,因此x将是未定义的。然后有:

    var x = document.forms["form_dl_rf_set"]["DL_RF_2000_id"].value;
if (x == 1) 

这将始终为false,因此函数返回undefined并提交表单。这将发生在所有浏览器中,而不仅仅是IE。

IE在Inspector中报告了哪些错误?ID不相关,OP通过名称访问表单控件。谢谢你的回复。我的代码不全是网页源代码。td标记没有问题。谢谢你的回复你的回答。我不知道如果(x==1)。我会修改的。谢谢。