2012-01-12 4 views
0

У меня есть VS2010, C# ASP.NET веб-приложение, я написал JavaScript (на странице aspx), который отлично работает в firefox, но почти ничего не делает в Chrome или IE, это моя функция:Функция Javascript не работает в IE и chrome

 <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 или хром, я поместил и оповещения, чтобы отобразить некоторую информацию, но ничего не отображается в хроме или IE, что случилось с ними?

Другая проблема в последних частях, гиперссылка изначально отключена, но она включена в firefox без везения в IE или хром, в чем проблема? как я могу сделать эту функцию кросс-браузером?

[EDIT] Я положил предупреждение («1») точно после определения линии функции и я ничего не видел в хроме и IE, кажется, что эта функция не вызывается в этих браузерах, я использую r.Attributes. Добавить ("onChange", "return onRadioChange ('" + (i - 1) .ToString() + "', '1', '" + myHref + "');"); для вызова этой функции в коде, r является динамически созданной радиобуйкой.

+2

ли вы проверить консоль на наличие ошибок? В Chrome: щелкните правой кнопкой мыши в любом месте -> Проверить элемент -> Консоль –

+0

Переходит ли она в «all_ok»? –

+0

попробуйте что-то вроде 'removeAttribute ('disabled');' – greut

ответ

1

Вы не должны отключать тег a.

Следующие элементы поддерживают отключенную атрибут: BUTTON, INPUT, OPTGROUP, OPTION, SELECT, и TEXTAREA.

Источник: http://www.w3.org/TR/html4/interact/forms.html#adef-disabled

Вот почему document.getElementById('myLink').disabled возвращается undefined.

+0

спасибо, как мне изменить свою функцию? как я сказал, кажется, что эта функция вообще не называется, даже верхние части функции ничего не делают в IE (8) и хром, есть ли проблема с вызовом функции из кода: r.Attributes.Add ("onChange "," return onRadioChange ('"+ (i - 1) .ToString() +"', '1', '"+ myHref +"'); "); –

+0

Не могли бы вы просмотреть HTML-страницу своей страницы и включить ее в свой вопрос? Вам нужны детали с вашим визуализированным «r» контролем. – Stefan