2010-12-02 4 views
1

J'essaie d'implémenter une fonctionnalité où un utilisateur peut cliquer sur une ligne, c'est-à-dire <tr>, et il ira à une URL spécifique.jquery find entrée: erreur cachée dans safari

Voici mon code HTML et Jquery:

   <tbody> 

        <tr> 
         <input class="threadid_c" id="threadID" name="threadID" type="hidden" value="MzAwMTYwLDMwMDM3Miw=" /> 
         <td> 
          ... 
     </tr> 
        <tr> 
         <input class="threadid_c" id="threadID" name="threadID" type="hidden" value="MzAwMzcyLDMwMDM4MCw=" /> 
         <td> 
      .... 

     $('#datatable tr').click(function() { 
      var x = $(this).find("input:hidden"); 
      var url = "/User/Ping/" + x.val(); 
      location.href = url; 
     }); 

Cela fonctionne bien dans Chrome, Firefox et IE. Mais dans Safari, x.val() renvoie undefined.

Je regardais dans la console JavaScript de Safari, je vois ce message:

<input> is not allowed inside <tr>. Inserting <input> before the <table> instead. 

Je ne sais pas si cela est lié au problème. Aucune suggestion?

Répondre

1

Vous ne pouvez pas avoir un <input> comme un enfant <tr> directe comme il est dit, juste Rentrez à l'intérieur de la première <td> au lieu, comme ceci:

<tr> 
    <td> 
    <input class="threadid_c" name="threadID" type="hidden" value="MzAwMzcyLDMwMDM4MCw=" /> 
    .... 

supprimer également l'attribut id car il est répété .. .ils devraient être uniques dans la page.

+0

Merci, c'était définitivement un pet de cerveau de ma part – Dean