2009-12-30 7 views
1

J'ai deux entrées sélectionnées à afficher: aucune. Basé sur change() dans un autre élément j'utilise jQuery à show() ou hide() eux. Tous les tests de mon navigateur sont excellents sauf pour Chrome qui disparaît avec le message "Quelque chose ne va pas ...". Voici ma fonctionAffichage et masquage des éléments sélectionnés Supprime Chrome

$(document).ready(function(){ 
    $("#supplier_type").change(function() { 
     if ($("#supplier_type").val() == 'Wholesaler') { 
     $("#retail_fulfillment").hide("slow"); 
     $("#retail_fulfillment").val(""); 
     $("#wholesale_fulfillment").show("slow"); 
     } else { 
     if ($("#supplier_type").val() == 'Retailer') { 
     $("#wholesale_fulfillment").hide("slow"); 
     $("#wholesale_fulfillment").val(""); 
     $("#retail_fulfillment").show("slow"); 
     } 
     } 
    }); 

Quelqu'un peut-il avoir des conseils à ce sujet?

+0

Avez-vous essayé de l'appeler la méthode 'hide()' sans paramètres? – naivists

+0

Merci naïfs! Il s'avère que si j'élimine les arguments à la fois show() et hide() l'erreur est éliminée. – jerrygarciuh

Répondre

0

Par le commentaire des naïfs ci-dessus j'ai essayé d'appeler hide() sans paramètres. Cela n'a pas résolu le problème, mais la suppression des arguments à la fois show() et hide() a résolu le problème de Chrome.

1

#wholesale_fulfillment et #retail_fullfillment sont tous deux des éléments de sélection, n'est ce pas? Vous définissez la valeur d'un élément select à rien. Je suppose que c'est le problème; c'est impossible.

Ce sera votre code:

$(document).ready(function(){ 
    $("#supplier_type").change(function() { 
     if ($(this).val() == 'Wholesaler') { 
      $("#retail_fulfillment").hide("slow") 
      //$("#retail_fulfillment").find('option.empty').attr('selected', 'selected'); 
      $("#wholesale_fulfillment").show("slow"); 
     } else { 
      if ($(this).val() == 'Retailer') { 
      $("#wholesale_fulfillment").hide("slow"); 
      //$("#wholesale_fulfillment").find('option.empty').attr('selected', 'selected'); 
      $("#retail_fulfillment").show("slow"); 
      } 
     } 
    }); 
}); 

Si vous voulez toujours sélectionner un <option/> -tag avec une valeur vide, il suffit d'ajouter une classe à cette <option/> -tag et décommenter le Javascript code a commenté:

<select id="#wholesale_fulfillment"> 
    <option value="" class="empty">---</option> 
    <option value="something">Wholesaler</option> 
</select> 
+0

Merci pour la réponse Harmen. J'ai essayé de supprimer purement et simplement les lignes de valeur, mais Chrome meurt toujours. Comme un autre test, j'ai commenté les appels show() et hide() et Chrome a cessé de mourir. – jerrygarciuh

+0

Chrome a cessé de mourir lorsque show() n'a pas été appelé. Commenter hide() n'a eu aucun effet. – jerrygarciuh

Questions connexes