Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:Object不';t使用onclick=";支持此操作错误;状态();_Javascript_Html_Internet Explorer_Status - Fatal编程技术网

Javascript:Object不';t使用onclick=";支持此操作错误;状态();

Javascript:Object不';t使用onclick=";支持此操作错误;状态();,javascript,html,internet-explorer,status,Javascript,Html,Internet Explorer,Status,我在IE11中遇到了一个错误,当我试图调用一个单选按钮上单击执行的函数时 以下是单选按钮的html: <input type="radio" name="filter" value="status" onclick="status()" checked> 该函数在页面底部定义: function status(){ try{ var td = document.getElementById("check1td"); td.inn

我在IE11中遇到了一个错误,当我试图调用一个单选按钮上单击执行的函数时

以下是单选按钮的html:

<input type="radio" name="filter" value="status" onclick="status()" checked>    

该函数在页面底部定义:

function status(){

    try{
        var td = document.getElementById("check1td");
        td.innerHTML = "Current (CURR)<input type=\"checkbox\" name=\"skustat1\" value=\"CURR\" checked>";

        td = document.getElementById("check2td");
        td.innerHTML = "Test (TEST)<input type=\"checkbox\" name=\"skustat2\" value=\"TEST\" checked>";

        td = document.getElementById("check3td");
        td.innerHTML = "Stocking Internet (SINET)<input type=\"checkbox\" name=\"skustat3\" value=\"SINET\" checked>";

        td = document.getElementById("check4td");
        td.innerHTML = "Sellable Display (SLDSP)<input type=\"checkbox\" name=\"skustat4\" value=\"SLDSP\" checked>";

    }
    catch(err){
        alert(err.message);     
    }
}
功能状态(){
试一试{
var td=document.getElementById(“check1td”);
td.innerHTML=“当前(当前)”;
td=document.getElementById(“check2td”);
td.innerHTML=“测试(Test)”;
td=document.getElementById(“check3td”);
td.innerHTML=“存储互联网(SINET)”;
td=document.getElementById(“check4td”);
td.innerHTML=“可销售显示器(SLDSP)”;
}
捕捉(错误){
警报(错误消息);
}
}
我在同级单选按钮上有一个类似定义的函数,它被正确调用。所以,我的问题是,
status()
是IE不会响应的保留javascript函数吗?如果是这样的话,为什么在其他浏览器中也能这样呢

编辑:将Status()更改为Status(),以反映它在我的代码中的实际显示方式


更新1:当浏览器第一次在IE中打开时,它似乎也能工作,可能是缓存问题

您不能在chrome(可能还有其他浏览器)中将
状态
用作变量


尝试将其重命名为
状态()。此代码有效:

添加如下事件侦听器:

document.getElementById("clickMe").addEventListener("click", status);
参见小提琴:

HTML

<input id="clickMe" type="radio" name="filter" value="status" onclick="status()" checked> 
    <div id="check1td"></div>
    <div id="check2td"></div>
    <div id="check3td"></div>
    <div id="check4td"></div>

javascript

document.getElementById("clickMe").addEventListener("click", status);
        function status(){
    try{
        var td = document.getElementById("check1td");
        td.innerHTML = "Current (CURR)<input type=\"checkbox\" name=\"skustat1\" value=\"CURR\" checked>";

        td = document.getElementById("check2td");
        td.innerHTML = "Test (TEST)<input type=\"checkbox\" name=\"skustat2\" value=\"TEST\" checked>";

        td = document.getElementById("check3td");
        td.innerHTML = "Stocking Internet (SINET)<input type=\"checkbox\" name=\"skustat3\" value=\"SINET\" checked>";

        td = document.getElementById("check4td");
        td.innerHTML = "Sellable Display (SLDSP)<input type=\"checkbox\" name=\"skustat4\" value=\"SLDSP\" checked>";

    }
    catch(err){
        alert(err.message);     
    }
}
document.getElementById(“clickMe”).addEventListener(“click”,状态);
功能状态(){
试一试{
var td=document.getElementById(“check1td”);
td.innerHTML=“当前(当前)”;
td=document.getElementById(“check2td”);
td.innerHTML=“测试(Test)”;
td=document.getElementById(“check3td”);
td.innerHTML=“存储互联网(SINET)”;
td=document.getElementById(“check4td”);
td.innerHTML=“可销售显示器(SLDSP)”;
}
捕捉(错误){
警报(错误消息);
}
}
这绝对是“状态”名称。这是两者之间唯一的区别:

这是:

但第二种方法将“状态”改为“状态”,效果很好

还有一个强制性的代码链接,尽管该小提琴使用与问题相同的代码:微笑:

<input type="radio" name="filter" value="status" onclick="status()" checked>    

我的答案并不直接适用于这个案例,但我有一个完全相同的错误,它是由一个非常类似的相关问题引起的。我的函数名不是保留字,而是与输入收音机的“name”属性完全相同的名称

<script>
function LoginType()
{
  // Code here never called because the function name is the same as my input name...
}
</script>
<input type="radio" name"LoginType" value="Windows" onclick="LoginType();" />

函数LoginType()
{
//此处的代码从未调用,因为函数名与我的输入名相同。。。
}
所以我不得不改名如下:

<input type="radio" name"radio_LoginType" value="Windows" onclick="LoginType();" />


看起来可能只是大小写不同而已。JS是区分大小写的,“Status”和“Status”是不同的。哦,等等,这在其他浏览器中有效吗?点击该按钮。@Javierbuszi您需要
()
使其调用函数。您需要
()
不要听它们:)否则这会起作用,更改函数名称也会起作用。但是为什么会发生错误?这可能解决问题,也可能无法解决问题,但无法解释为什么会发生错误。使用此解决方案,您根本不需要onclick=“status()”,因为您正在覆盖它。。为什么要保留它@Javierbuski出于懒惰,谁真的在乎它是否存在,它什么也没做lol。下一个家伙,这就是为什么。我用这样的话来编码:“总是编码,好像最终维护你的代码的人是一个知道你住在哪里的暴力精神病患者。”啊,是的,@epascarello在上面的评论解释了这一点。我已经很久没有在
window.status
上乱搞了。。。。您发布的代码是浏览器代码的一部分吗?我不知道你从哪里得到的。不,代码是为了表明
status
是一个内置变量,你不想弄乱它。我的观点是,只需要重新命名它。
<input type="radio" name"radio_LoginType" value="Windows" onclick="LoginType();" />