2011-05-12 3 views
0

Quelqu'un peut-il me halpe avec cette erreur:JavaScript Uncaught TypeError?

Uncaught TypeError: Cannot read 
property 'length' of undefined 

website

Lorsque vous modifiez les valeurs de combo, il devrait modifier le prix ci-dessous, mais il ne fonctionne pas

function update_price_select2(o, element_name) 
{ 

    var sel_obj = null; 
    var element = null; 
    //price_original = <?php //echo substr($products_price,0,-1); ?>; 
    //alert("Preço Original:" + price_original); 
    if (document.getElementById) // DOM3 = IE5, NS6 
    { 
     sel_obj = document.getElementById(o); 
     //alert("sel_obj "+ sel_obj); 
     element = document.getElementById(element_name); 
     //alert("element "+ element); 
    } 
    //alert(o); 
    //alert(element_name); 
    var index = sel_obj.selectedIndex; 
    //alert(o+" index"); 
    var price_array = option_price[sel_obj.id]; 
    var price = price_array[index]; 
    var price_for_operation = price.substr(0,price.length -1); //the price from the option choosen 

    if (price_for_operation == '') 
    { 
     price_for_operation = 0; 
    } 

    //Ao preço original, vamos retirar o preço da variável que este tinha anteriormente. 
    current_product_price = current_product_price - option_price[sel_obj.id + '_current']; 
    //Vamos colocar o valor actual da variável seleccionada 
    option_price[sel_obj.id + '_current'] = price_for_operation; 

    if (price_for_operation != 0) 
    { 
     var final_price = roundNumber(parseFloat(current_product_price) + parseFloat(price_for_operation),2); 
     final_price = final_price.toFixed(2); 
    } 
    else 
    { 
     var final_price = current_product_price.toFixed(2); 
    } 
    //Nos save the decimal value, without the € or $, so we can use it in the next options call 
    current_product_price = final_price; 
    final_price = final_price + money_simbol; 

    if (final_price != "") 
    {  
     display_updated_price(final_price, element); 
     update_allowbuy(final_price); 
    } 

} 
+1

besoin quelques exemples de code –

+0

@Sachin Shanbhag mis à jour –

+0

Bonjour, quand je chargé votre site Web, je suis juste le message d'erreur "order is null" à la ligne 895. Où exactement votre message sera-t-il envoyé? – reporter

Répondre

0

pouvez-vous poster la ligne où l'erreur se produit? Votre erreur me dit que vous essayez d'accéder à la longueur de la propriété d'un objet qui n'a pas pu être trouvé.

je reçois une erreur lorsque je visite manifestations analogues votre page:

var order = document.getElementById('".BUTTON_IN_CART."'); 
order.style.visibility = 'visible';` 

me disant que « ordre » est indéfini, c'est parce qu'il ne peut pas trouver la BUTTON_IN_CART variable et donc il ne sera pas un élément! Vous devriez toujours vérifier si l'élément que vous recherchez existe.

Edit:

Prolongez votre code pour vérifier que l'élément se trouve:

if (document.getElementById) // DOM3 = IE5, NS6 
{ 
    sel_obj = document.getElementById(o); 
    //alert("sel_obj "+ sel_obj); 
    element = document.getElementById(element_name); 
    //alert("element "+ element); 
} 

if(sel_obj == null) { alert("Sell Obj not found!"); } 
if(element == null) { alert("Element not found!"); } 
+0

Merci, je vais vérifier si ça existe –

2

Vérifiez si votre "price" est une valeur valide. Si "price" n'est pas défini, vous ne pouvez pas utiliser la ligne "price.length" comme dans votre code. Ma conjecture serait que votre price est sûrement undefined.

+0

Vous avez raison le prix n'est pas défini, mais pourquoi? –

+0

@Daniel - Ajoutez des alertes ou des instructions de log pour vérifier pourquoi le prix n'est pas défini. Vérifiez ce qui est dans Price_Array et index etc. Affinez votre problème, puis vous pouvez le résoudre. –

Questions connexes