【问题标题】:Javascript function not working in IE and chromeJavascript 函数在 IE 和 chrome 中不起作用
【发布时间】:2012-01-12 12:32:51
【问题描述】:

我有一个 VS2010,C# ASP.NET 网络应用程序,我编写了一个 JavaScript(在 aspx 页面中),它在 Firefox 中完美运行,但在 chrome 或 IE 中几乎没有任何作用,这是我的功能:

       <script type="text/javascript" >
       function onRadioChange(rowIndex, value, myHref) {
           var q = document.getElementById('HF').value.toString();
           var q2 = q.split(',');

           var new_HF = '';

           for (var i = 0; i < rowIndex; i++) {
               new_HF += q2[i] + ',';
           }

           new_HF += value.toString() + ',';

           for (var j = rowIndex; j < q2.length - 1; j++) {
               if (j > rowIndex) {
                   new_HF += q2[j] + ',';
               }
           }

           document.getElementById('HF').value = new_HF;

           //user has voted all questions? enable hpAccept so that he can go to next questionnaire
           var q5 = new_HF.split(',');
           var all_ok = true;
           for (var g = 0; g < q5.length; g++) {
               if (q5[g] == '0')
                   all_ok = false;
           }
           if (all_ok) {
               document.getElementById('hpAccept').disabled = false;
               document.getElementById('hpAccept').href = myHref;
           }
       }

这个函数好像在 IE 或 chrome 中没有任何作用,我放置并提醒显示一些信息,但在 chrome 或 IE 中没有显示任何内容,它们有什么问题?

另一个问题是最后部分,超链接最初是禁用的,但在Firefox中启用它在IE或chrome中没有运气,这里有什么问题?如何让这个功能跨浏览器?

[EDIT] 我在函数定义行之后放了一个alert('1'),我在chrome和IE中什么也没看到,似乎这些浏览器没有调用这个函数,我用r.Attributes.Add("onChange", "return onRadioChange('" + (i - 1).ToString() + "','1','" + myHref + "');");为了在代码隐藏中调用这个函数,r 是一个动态创建的单选按钮。

【问题讨论】:

  • 您检查控制台是否有错误?在 Chrome 中:右键单击任意位置 -> 检查元素 -> 控制台
  • 试试removeAttribute('disabled');
  • 好像在all_ok之前报错了,应该在哪里使用removeattribute?
  • 我在函数定义行之后放了一个alert('1'),我在chrome和IE中什么也没看到,似乎这些浏览器没有调用这个函数,我使用r.Attributes.Add ("onChange", "return onRadioChange('" + (i - 1).ToString() + "','1','" + myHref + "');");为了在代码隐藏中调用这个函数,r 是一个动态创建的单选按钮
  • 您在控制台中遇到的错误是什么?

标签: javascript


【解决方案1】:

您不应该禁用a 标签。

以下元素支持禁用属性:BUTTON、INPUT、 OPTGROUP、OPTION、SELECT 和 TEXTAREA。

来源:http://www.w3.org/TR/html4/interact/forms.html#adef-disabled

这就是document.getElementById('myLink').disabled 返回undefined 的原因。

【讨论】:

  • 谢谢,我应该如何更改我的功能?正如我所说,似乎根本没有调用这个函数,即使函数的上半部分在 IE(8)和 chrome 中什么也不做,从 codebehind 调用函数是否有任何问题:r.Attributes.Add("onChange ", "return onRadioChange('" + (i - 1).ToString() + "','1','" + myHref + "');");
  • 您能否查看您页面的 HTML 源代码并将其包含在您的问题中?需要带有渲染的“r”控件的部件。
【解决方案2】:

Radio Button change event not working in chrome or safari 的副本

解决方案:对于单选按钮,使用onClick 事件而不是onChanged

【讨论】:

    猜你喜欢
    • 2011-08-31
    • 1970-01-01
    • 2013-01-27
    • 2010-10-20
    • 1970-01-01
    • 2020-06-04
    • 2014-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多