2010-12-07 104 views
2

Permettez-moi de commencer par poser cette question en disant que je suis un jQuery noob - commençant juste le processus d'apprentissage.Activer le focus onclick pour ajouter du texte ajouté dynamiquement

Je travaille actuellement sur un magasin en ligne. L'une des fonctionnalités que nous avons intégrées au panier est un champ "quick add" (id = "cc"). Sous le champ "quick add" se trouve une table remplie dynamiquement avec des rangées d'éléments. Dans chacune de ces lignes d'articles ajoutées dynamiquement se trouve un champ de texte "qty" (id = "qtycart") au cas où le client souhaite changer sa quantité une fois que l'article a été ajouté au panier.

Voici ce que je veux faire:

Je veux un client pour pouvoir ajouter du texte à l'entrée de texte « Ajout rapide » et cliquez sur le bouton Envoyer. Une fois que vous cliquez sur le bouton "Soumettre", je souhaite que le focus passe de cette entrée à l'entrée "qty" de la nouvelle ligne ci-dessous.

Est-ce que cela a du sens?

Voici une fonction simple, je mets ensemble, mais je manque évidemment quelque chose:

$("#cc").live("click", function(){ 
$("#qtycart:text:visible:last").focus(); 
}); 

Merci beaucoup pour votre temps!

+0

'id' de chaque élément doit être unique. –

Répondre

2

Vous semblez avoir des ID en double dans votre DOM (qtycart). Vous devriez probablement utiliser le nom de classe « qtycart » au lieu:

$("#cc").live("click", function(){ 
    $(".qtycart:text:visible:last").focus(); 
}); 

La méthode ne fonctionne .focus() si vous ciblez l'élément droit. Voici une petite démo pour simuler ce que vous essayez de faire: http://jsfiddle.net/6VZf3/2/

Et voici ce que le W3C dit au sujet de la ID attribute:

id =nom [CS]

Cette attribut attribue un nom à un élément. Ce nom doit être unique dans un document.

0

Je crois comprendre votre question. Jetez un oeil à cet exemple:

http://jsbin.com/ahusi4/2/edit

Vous pouvez entrer un nouvel élément et la zone de saisie qté obtient le focus.

Espérons que cela aide.

Bob