2011-01-19 85 views
1

我有一個單選按鈕,需要在頁面加載時進行預填充...我的代碼完全適用於IE8中的Firefox,IE8和IE7,但是當我嘗試使用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); 
} 
}); 
+1

您需要張貼一些代碼.... – 2011-01-19 01:44:09

回答

0

我懷疑你運行你的代碼的頁面完成渲染之前。 IE7在渲染頁面時比IE8慢。

如果您的JS代碼在您的HTML之前,並且您沒有使用$(document).ready(function() { .... })來調用它,那麼該購物車在馬之前。

+0

謝謝!但我已經包裝在.ready()但沒有運氣......浪費地獄很多時間...我知道它的渲染問題,但沒有找到一個合適的解決方案... – paul 2011-01-19 05:22:04

2

這是我現在正在使用的同一個問題:我爲動態創建單選按鈕列表,並且在Internet Explorer 7中無法選擇它們。

我發現它不是一個與jQuery相關的問題:即使在純JavaScript中創建元素也會產生非工作輸入。

如果你想讓你的動態無線電輸入在IE7中工作,你必須在一行中聲明它們。

這不會在IE <工作= 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>,您不能使用自行閉合的標籤(/> )。

+0

你正在緩存整個事情...這是優化的好...我通過綁定控件(如收音機,文本)後加載頁面...基本上它的問題與IE7緩慢呈現......無論如何感謝您的意見... ...解決這個問題... – paul 2011-02-08 02:41:25