在IE7中预先检查/选择单选按钮

时间:2011-01-19 01:43:27

标签: javascript jquery button radio

我有一个带单选按钮的页面需要在页面加载时预先填充...我的代码在IE8中的firefox,IE8和IE7中完美运行但是当我尝试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 个答案:

答案 0 :(得分:2)

这与我现在遇到的问题相同:我动态创建单选按钮列表,而在Internet Explorer 7中则无法选择它们。

我发现它不是与jQuery相关的问题:即使用纯JavaScript创建元素也会产生非工作输入。

如果您希望动态无线电输入在IE7中工作,则必须在一行中声明它们。

这在IE&lt; = 7:

中无效
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>,您不能使用自我结束标记(/>)。

答案 1 :(得分:0)

我怀疑您在页面完成渲染之前运行代码。 IE7渲染页面的速度比IE8慢。

如果你的JS代码在你的HTML之前并且你没有使用$(document).ready(function() { .... })来调用它,那么购物车就在马的前面。