2010-12-02 12 views
1

Ich versuche, eine Funktion zu implementieren, wo ein Benutzer auf eine Zeile klicken kann, d. H. <tr>, und es wird zu einer bestimmten URL gehen.jquery find input: versteckter Fehler in Safari

Hier ist mein HTML und jQuery-Code:

   <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; 
     }); 

Dies funktioniert in Chrome, Firefox und Internet Explorer. Aber in Safari gibt x.val()undefined zurück.

ich in Safari JavaScript-Konsole sah, sehe ich diese Meldung:

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

nicht sicher, ob das mit dem Problem ist. Irgendwelche Vorschläge?

Antwort

1

Sie können keine <input> als direkte <tr> Kind wie es sagt, stecken sie nur innerhalb des ersten <td> stattdessen wie folgt aus:

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

Auch das id Attribut entfernen, da es wiederholt hat .. .Sie sollten auf der Seite eindeutig sein.

+0

Danke, das war auf jeden Fall ein Hirn Furz von meiner Seite – Dean