2012-12-24 2 views
1

je le balisage suivanttag <a> se champ suivant caché

<td> 
     <a id="lbtnDelete" onclick="deleteFile(this); return false;" runat="server" class="silverbutton smallbutton normal"> 
      <span class="left"> 
        <span class="right">Delete</span> 
      </span> 
     </a> 
     <asp:HiddenField runat="server" ID="hidDownloadId" /> 
    </td> 

function deleteFile(element) 
{ 
    var currEl = element; 
    var downloadId = currEl.next().value; 
} 

Lorsque l'utilisateur clique sur le lien "lbtnDelete" J'appelle la fonction deleteFile (this). Dans cette fonction, je devrais obtenir la valeur de l'entrée cachée - hidDownloadId. Comment puis-je le faire? J'ai déjà essayé

currEl.next().value; 

mais dans Chrome j'ai eu une erreur comme "L'objet n'a pas la méthode suivante()". Une autre tentative était de faire

currEl.parent().find('[type=hidden]') 
[Exception: TypeError: Object has no method 'parent'] 

Toute aide serait grandement appréciée.

Répondre

3

Vous devez créer un objet jquery de votre élément avant de pouvoir utiliser des méthodes de jquery sur il ..

var currEl = $(element); 
var downloadId = currEl.next().val(); 

Mais puisque vous allez la façon dont jquery, vous devez également cesser d'utiliser les attributs d'événements en ligne et l'utilisation jquery pour la liaison et ..

Alors

<td> 
     <a id="lbtnDelete" runat="server" class="silverbutton smallbutton normal"> 
      <span class="left"> 
        <span class="right">Delete</span> 
      </span> 
     </a> 
     <asp:HiddenField runat="server" ID="hidDownloadId" /> 
    </td> 

et

$(function(){ 
    $('#lbtnDelete').click(function(e){ 
     e.preventDefault(); 
     var currEl = $(this), 
      downloadId = currEl.next().val(); 

     // do whatever you want to do with downloadId here 

    }); 
}); 
1

Essayez

function deleteFile(element) 
{ 
    var currEl = $(element); 
    var downloadId = currEl.next().val(); 
} 

.next() et .parent() sont des méthodes jQuery et val() est l'équivalent jQuery à .value