2010-08-18 8 views
0

안녕하세요. Firefox에서 완벽하게 작동하지만 IE 8에서는 작동하지 않으며 오류가 발생하지 않는 코드가 있습니까? "전체 그림"을 얻기 위하여IE에서 Jquery 문제가 발생했습니다.

$(".shp_div").change(function() { 
    var str = ""; 
    $("select option:selected").each(function() { 
     var countprod =parseInt($("#countprod").val()); 
     var str2 = $(this).val(); 
     str2_array = str2.split('|'); 
     var cost = parseInt(str2_array[0]); 
     var cost_extra = parseInt(str2_array[1]); 
     if ($("#countprod").val()>1) { 
     str = parseInt(((countprod-1)*cost_extra) + cost); 
     } else{ 
     str = cost; 
     }}); 
    $(".csq_item2").text(str); 
    var total =parseInt($("#subtotal").val()); 
    var shipping=parseInt(str + total); 
    $(".price_total").text(shipping); 
}) 
.change(); 

로 이동하십시오 : http://poshsunglasses.net/21-Bottega_Veneta-B.V.88.html 및 장바구니에 자극을 추가 한 다음 없음 카트 페이지에 FF의 배송 국가를 선택하려고 IE에서 계산을합니다.

+0

아마 문제와 관련이 없지만 기수를 지정하지 않고'parseInt'를 사용할 때는주의해야합니다. 구문 분석 할 문자열이'0x' 또는'0'으로 시작하면 문자열은 각각 16 진수 또는 8 진수로 구문 분석됩니다. https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/parseInt를 참조하십시오. –

답변

3

귀하의 문제는 당신이 DIV의 변경 이벤트를 결합하는 것입니다 감사합니다. div에는 실제로 변경 이벤트가 없습니다. 어쩌면 FF와 크롬에서 선택 변경 이벤트가 div로 넘어가지만 IE에서는 그렇지 않습니다.

div 대신 select (또는 다른 입력)에 change 이벤트를 넣으십시오.

현재 : 왜 선택에 foreach합니까? 하나만 선택할 수있을 때?

내가 이런 짓을 했을까 :

<select name="shipping" id="shipping"> 

$("#shipping").change(function() { 
    var str2 = $("option:selected","#shipping").val().split('|'); 
    var cost = parseInt(str2_array[0]); 
    var cost_extra = parseInt(str2_array[1]); 
    //Go on from here 
}); 

PS : 당신이 정보로 당신의 selectList의 임의의 값을 사용하려는 경우에는 백엔드로 보내주는 뮤 ID를 selectList의. 나는 문제를 방지하기 위해 대신이 표기법의 고유 ID를 사용하고, 추가 매개 변수에서 가격 값을 둘 것 :

<option value="56411-416(unique ID)" price="25|10">Country</option> 
0

나는

$(".shippinginfo").change(function() { 

이며 함께

$(".shp_div").change(function() { 

변경

관련 문제