Предварительная проверка / выбор переключателя в IE7 - PullRequest
1 голос
/ 19 января 2011

У меня есть страница с переключателем, которую необходимо предварительно заполнить при загрузке страницы ... мой код прекрасно работает в Firefox, IE8 и IE7 в IE8, но когда я пытаюсь использовать чистую среду IE7 ... переключатель не задан отключить радио работает отлично .... любая помощь будет оценена.

Спасибо!

edit1: код

main.disable = function($cntrl, flag){
    if($cntrl.attr('type')=== "radio"){
       var ctrls = document.getElementByName($cntrl.attr('name'));
       for(var idx = 0 ; idx < ctrls.length; idx++){
            ctrls[idx].disabled = flag;
      }
   else{
       $cntrl.disabled = flag;
}
};
main.getControlById = function(id, context){
  if(id.search("{") > 0){
    id = main.fillTem(id, context);
}

return $(document.getElementById(id));
};

behave.addRule("abc","Enable/disable aa", function(){
var $ab = main.getControlById(a.ab, this);

        if( supp !== undefined && supp !== null){
            if(supp.ab === 'A' || supp.A === 'N'){
               main.disable($ab, false);
}
else{
   main.disable($ab, false);
}
}

else{
main.disable($ab, false);
}
});

Ответы [ 2 ]

2 голосов
/ 07 февраля 2011

У меня та же проблема, что и сейчас: я динамически создаю список радиокнопок, а в Internet Explorer 7 их нельзя выбрать.

Я обнаружил, что это не проблема, связанная с jQuery: даже создание элементов в чистом JavaScript дает нерабочие входные данные.

Если вы хотите, чтобы ваши динамические радиовходы работали в IE7, вы должны объявить их в одной строке.

Это не будет работать в IE <= 7: </p>

var input = $("<input />");
input.attr("id", answers[index].id);
input.attr("type", "radio");
input.attr("name", "answer");
input.val(answers[index].value);

Вместо этого используйте этот код:

var input = $("<input id='" + answers[index].id + "' type='radio' name='answer' value='" + answers[index].value + "'></input>");

Не упустите </input>, вы не можете использовать самозакрывающийся тег (/>).

0 голосов
/ 19 января 2011

Я подозреваю, что вы запускаете свой код до того, как страница закончит рендеринг.IE7 медленнее рендерит страницы, чем IE8.

Если ваш JS-код находится перед вашим HTML, и вы не используете $(document).ready(function() { .... }) для его вызова, тогда корзина перед лошадью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...