2010-11-20 15 views
0

Ich hatte für dynamisch hinzufügen Komponente in Seite einen Code in jquery machenJQuery funktioniert nicht in IE 8

var counter = 1; 
var delCnt = 0; 
$(function() { 
    $('#linkAddLot').click(function() { 
     counter = eval(document.getElementById("hdnTotLot").value); 
     delCnt = eval(document.getElementById("hdnDelLot").value); 
     if((eval(counter-delCnt))>=5){ 
      $('span.#lotMsg').css("visibility","visible"); 
      $('span.#lotMsg').css("color","red"); 
      $('span.#lotMsg').html('Already 5 (Five) Lot!!!'); 
     } else { 
      $('span.#lotMsg').css("visibility","collapse"); 
      var htmlEle = "<tr id='trLot_"+ (counter+1) +"'>"+ 
       "<td class='t-align-center'><input type='checkbox' name='packagedetail_"+ (counter+1) +"' id='chkPackageDetail_"+ (counter+1) +"' value='"+ (counter+1) +"'/></td>"+ 
       "<td class='t-align-center'><input name='lotno_"+ (counter+1) +"' type='text' class='formTxtBox_1' id='txtLotNo_"+ (counter+1) +"' style='width:80px;' onBlur='chkLotNoBlank(this);chkLotNo(this);'/><span id='msgLotNo_"+ (counter+1) +"' style='color: red; ' >&nbsp;</span></td>"+ 
       "<td class='t-align-center'><textarea name='lotdesc_"+ (counter+1) +"' cols='20' rows='3' class='formTxtBox_1' id='txtLotDesc_"+ (counter+1) +"' style='width:250px;' onBlur='chkLotDetBlank(this);'></textarea><span id='msgLotDesc_"+ (counter+1) +"' style='color: red; '>&nbsp;</span></td>"+ 
       "<td class='t-align-center'><input name='quantity_"+ (counter+1) +"' type='text' class='formTxtBox_1' id='txtQuantity_"+ (counter+1) +"' style='width:80px;' onBlur='chkQtyBlank(this);'/><span id='msgLotQty_"+ (counter+1) +"' style='color: red; '>&nbsp;</span></td>"+ 
       "<td class='t-align-center'><input name='unit_"+ (counter+1) +"' type='text' class='formTxtBox_1' id='txtUnit_"+ (counter+1) +"' style='width:80px;' onBlur='chkUnitBlank(this);'/><span id='msgLotUnit_"+ (counter+1) +"' style='color: red; '>&nbsp;</span></td>"+ 
       "<td class='t-align-center'><input name='estimatecost_"+ (counter+1) +"' type='text' class='formTxtBox_1' id='txtEstimateCost_"+ (counter+1) +"' style='width:80px;' onChange='setPkgEstCost(this);' onBlur='chkEstBlank(this);'/><span id='msgLotCost_"+ (counter+1) +"' style='color: red; '>&nbsp;</span></td>"+ 
       "</tr>"; 
      $("#tblLots").append(htmlEle); 
      document.getElementById("hdnTotLot").value = (counter+1); 
     } 
    }); 
}); 

Hier i onBlur Funktion auf onBlur='chkLotNoBlank(this);chkLotNo(this);' auf txtLotNo gemacht hatte, aber in IE8 seine kippe Arbeit,

wenn ich es in IE 7 und Firefox laufen lasse, funktioniert es gut, und alos, wenn ich in Windows 7 vorinstallierte IE8 Version IE8.0.7600.16385 arbeiten werde, aber es kann nicht funktionieren, wenn ich in Windows 2003 kompatiblen IE 8.0.6001.18702 ausprobieren werde Kann mir jemand eine Lösung dafür geben?

+0

Was der Code der ist Funktionen 'chkLotNoBlank' und' chkLotNo'? Ich sehe die oben genannten nicht. – PleaseStand

Antwort

0

Ich kann nicht genau sagen, was das Problem ist - aber die Verwendung dieser Evals ist definitiv funky. Es ist am besten, eval nicht zu verwenden, wenn Sie nicht viel Ressourcen verbrauchen.

Try this:

var counter = 1; 
var delCnt = 0; 

$(function() { 
    $('#linkAddLot').click(function() { 
     counter = parseInt($("#hdnTotLot").val(),10); 
     delCnt = parseInt($("#hdnDelLot").val(),10); 
     if(((counter-delCnt)>=5){ 
      $('span.#lotMsg').css("visibility","visible"); 
      $('span.#lotMsg').css("color","red"); 
      $('span.#lotMsg').html('Already 5 (Five) Lot!!!'); 
     } else { 
      $('span.#lotMsg').css("visibility","collapse"); 
      var htmlEle = ""+ ""+ " "+ " "+ " "+ " "+ " "+ ""; 
      $("#tblLots").append(htmlEle); 
      $("#hdnTotLot").val(counter+1); 
     } 
    }); 
}); 
+0

Vielen Dank für Ihren Vorschlag und Anleitung, aber ich danke Ihnen wirklich, wenn Sie eine Lösung für mein Problem finden. – Sanju

+0

Ich benötige den eigentlichen Code für die Zuweisung Ihres Blur Event Handlers und der Blur Handler selbst, um Ihnen eine mögliche Lösung zu bieten. –

+0

Ich muss es auf Blank-Ereignis oder nicht auf Blur-Ereignis überprüfen ... – Sanju

-1

Sie haben den folgenden Code:

$('span.#lotMsg').css("visibility","visible"); 
$('span.#lotMsg').css("color","red"); 
$('span.#lotMsg').html('Already 5 (Five) Lot!!!'); 

wäre es nicht besser, dies shortern zu:

$('span.#lotMsg').css("visibility","visible").css("color","red").html('Already 5 (Five) Lot!!!'); 
+1

Dies betrifft jedoch nicht die eigentliche Frage. Diese Art von Vorschlag wäre besser als Kommentar zu der Frage geeignet. –

Verwandte Themen