2010-07-06 7 views
0

Mon problème est assez ennuyeux, probablement quelque chose de vraiment stupide, mais je l'ai contourné et je n'ai pas trouvé de solution.J'appelle 2 pages différentes à ce partiel vue:réglage des fonctionnalités cliquez pour le bouton radio ne fonctionne pas dans IE

<div id="NotificationStatusSuspensionDiv">  
    <p> 
     <strong><%= Html.Label("Status :") %> </strong><br /> 

     <input type="radio" name="NotificationStatusSuspension" id="statusA" value="A" checked="checked" /> 
     <label for="statusA">Active</label> 
     <input type="radio" name="NotificationStatusSuspension" id="statusN" value="N" /> 
     <label for="statusN">Not Active</label> 
    </p> 
</div>  

la chose est que dans la méthode document.ready dans un fichier javascript externe que je fais ceci:

$('input:radio[name="NotificationStatusSuspension"]').each(function() { 
    $(this).click(function() { 
      setNotificationStatus($(this)); 
    }); 
}); 

Je l'ai vu que cela fonctionne très bien, quand je clique sur le bouton radio il charge les notifications qui correspondent au statut sélectionné (c'est ce que setNotificationSt atus fait). Le problème est quand j'ajoute l'interface utilisateur à l'RadioButton comme ceci:

$('#NotificationStatusSuspensionDiv').buttonset(); 

Avec tout ce code, cela fonctionne parfaitement bien dans Firefox et Chrome, mais dans IE, il ne fait rien. C'est comme si elle ne reconnaissait pas le clic de la souris. La chose amusante à ce sujet est que j'ai plus ou moins le même code dans une autre partie du site et ça marche très bien avec IE .... Avez-vous la moindre idée?

+0

Je ne sais pas si ça aide, mais il fonctionne sur mon IE8 ici - http://jsfiddle.net/Q2ueN/ –

+0

oui, ça marche pour moi dans d'autres pages ce n'est pas celui-là, et je ne comprends pas pourquoiXD – vikitor

Répondre

1

Je vais essayer quelques petites choses:

Dans votre sélecteur jQuery, essayez de mettre des guillemets autour de l'attribut pour correspondre:

$('input:radio[name="NotificationStatus"]') 

Essayez d'utiliser la méthode de each() jQuery, vos événements sont liés comme ceci:

$('input:radio[name="NotificationStatus"]').each(function(){ 
    $(this).click(function(){ 
    alert($(this).val()); 
    }); 
}); 

Et enfin, essayez d'identifier les choses avec des caractères alphanumériques et des traits de soulignement seulement. Le troisième bouton radio a un signe% dans le nom de l'identifiant, et je ne suis pas sûr que ce soit une bonne pratique. IE pourrait jeter des crises quand il voit cela. PS: pour plus de clarté (et de normes), vous pouvez supprimer les espaces autour du signe égal dans vos attributs et ajouter un espace avant le slash à fermeture automatique. Par exemple, changer:

<input type="radio" name="NotificationStatus" id="statusA" value = "A" checked = "checked"/>

à

<input type="radio" name="NotificationStatus" id="statusA" value="A" checked="checked" />

+0

Merci pour les conseils, c'est très apprécié, mais mon problème n'a pas été résolu. J'ai essayé ce que vous avez dit, j'ai supprimé le troisième bouton de la page où il ne fonctionnait pas correctement pour vérifier si c'était le problème, mais je n'obtiens rien maintenant dans les deux autres boutons (je ne l'ai pas compris avant soit) .... Pourquoi Microsoft veut imposer ses normes catastrophiques quand il y en a d'autres fonctionnant parfaitement de toute façon ... – vikitor

Questions connexes