2010-08-04 8 views
0

Sur certaines pages View, j'ai deux vues partielles (leur html est le même). Avec le premier travail ce script mais avec la deuxième ne fonctionne pas.Problème de sélection jquery

<script type="text/javascript"> 
    $(document).ready(function() { 

    $('input:radio').click(function() { 

     var location = $("input:checked").val(); 
     var article_number = $("input[id=MArticleNumber]").val(); 

     $.post("/ImportXML/DevAccEditTempTable", { location: location, article_number: article_number }, function(data) { 

      if ($("input[id='check']:checked").val() == 'a') { 
       alert("page for new device")  
      } 
      else { 
       window.location.href = "/" + data.redirect; 
      } 
     },"json"); 
    }); 
}); 
</script> 

problème se produit lorsque vous essayez d'obtenir article_number parce que j'ai deux boîtes d'entrée avec certains id (id = MArticleNumber). Si changer le second id à id = MArticleNumber1 alors avoir deux numéros d'article mais je dois passer à l'action DevAccEditTempTable un seul numéro d'article.

Répondre

3

Tout d'abord, vous pouvez utiliser le plus court appel à la main pour obtenir la valeur d'un élément avec un identifiant (* voir explication ci-dessous):

var article_number = $("#MArticleNumber").val(); 

En second lieu, il est pas valable d'avoir à éléments avec le même identifiant. L'identifiant DOIT être unique selon les spécifications HTML: www.w3.org

En rendant votre identifiant unique, votre problème disparaîtra. (*) Explication de l'utilisation du sélecteur # au lieu du sélecteur [id = ...] dans jQuery. L'utilisation de #id donnera un simple appel à getElementById, qui est rapide et simple. L'identifiant doit être unique, donc le type d'élément n'est pas pertinent.

$("input[id=myElementId]") 

Pour effectuer cette recherche, vous obtenez d'abord tous les éléments d'entrée, puis une boucle autour de trouver une correspondance basée sur la recherche d'attribut spécifié.

+0

s/aux éléments/deux éléments – sje397