【问题标题】:javascript getElementById gives error in chrome but works fine in IEjavascript getElementById 在 chrome 中给出错误但在 IE 中工作正常
【发布时间】:2015-07-16 20:25:08
【问题描述】:

这是我的 Javascript 函数:

function deleteAlert(tabstate){
    var form = window.document.alertsForm;
    var numOfElements = form.elements.length;
    var okDelete = "false";
    for (i=0; i < numOfElements; i++)
    {
        if(form.elements[i].checked)
        {
            okDelete = "true";
            break;
        }else{
            okDelete = "false";

        }

    }
    if(okDelete == "true")
    {
        //changPage("Screen1b.html");  only for prototype
        form.action="/cpi/producer/myAlerts/alertsGateway?jadeAction=MA06&tab="+tabstate;
        form.document.getElementById('deleteAlertsButton').disabled=true;
        form.submit();

    }else{
        alert("Please select one or more items to delete.");
    }
}

我在两个 jsps 中调用这个函数,代码 sn-p 是相同的(注意相同的 id 值)

<input type=button value="Delete" id="deleteAlertsButton" title="Delete" class=fbutton onclick="javascript:deleteAlert('<%=state %>');">

现在这适用于 IE8 中的两个 jsp,但在 chrome 中,它会为第二个 jsp 提供错误: 未捕获的类型错误:无法读取未定义的属性“getElementById”

请帮忙。

【问题讨论】:

  • 我认为您对 form.document 的引用不正确。 “文档”在表单之外。
  • 为什么不使用 window.document.getElementById('deleteAlertsButton')...
  • 我怀疑这可能与您将布尔值用作字符串有关。布尔值true 与字符串值"true" 不同;同样false 不等于"false"。您还使用松散的相等运算符 == 进行比较,但您应该使用严格的身份运算符 === 代替。这可能会导致意想不到的结果。

标签: javascript getelementbyid


【解决方案1】:

您对 form.document 的引用不正确。 “文档”在表单之外

所以改变:

form.document.getElementById('deleteAlertsButton').disabled=true;

document.getElementById('deleteAlertsButton').disabled=true;

【讨论】:

    【解决方案2】:

    代替

    form.document.getElementById('deleteAlertsButton').disabled=true;
    

    试试

    document.getElementById('deleteAlertsButton').disabled=true;
    

    【讨论】:

    • 但是同样的javascript函数也适用于其他jsp。
    【解决方案3】:

    alertsForm的方法是什么?

    尝试像这样更改 document.getElementById()

    document.getElementById('deleteAlertsButton').disabled=true;
    

    Definition and Usage

    【讨论】:

      猜你喜欢
      • 2012-03-04
      • 1970-01-01
      • 2013-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-16
      相关资源
      最近更新 更多