2 votes

Utiliser l'événement click pour une image de type input en utilisant jquery

Je charge les données d'une page à l'aide d'Ajax. Je veux exécuter une fonction lors d'un clic sur une entrée, dont le type est une image et dont l'identifiant commence par "SubmitVote" suivi d'un nombre entier. Voici le code qui ne fonctionne pas.

$(function() {
    $('input:image[id^="submitVote"').live('click',function(){
        if(this.id.match(/^submitVote(\d+)$/)){
            var vote=$("#rtngCmb").val();
            var text=$("#userNote").val();
            var alertId=RegExp.$1;

            postVote(alertId, vote, text);
        }
    });
});

comment cela est-il possible ?

3voto

Mark Coleman Points 24469

Si vous ne pouvez pas modifier le balisage pour inclure une classe, essayez ce qui suit :

$('input[type="image"][id^="submitVote"]').live('click', function() {
    if (this.id.match(/^submitVote(\d+)$/)) {
        var vote = $("#rtngCmb").val();
        var text = $("#userNote").val();
        var alertId = RegExp.$1;

        postVote(alertId, vote, text);
    }
});

Exemple simple sur jsfiddle

De plus, la raison pour laquelle vous n'avez pas fonctionné la dernière fois est que vous n'avez pas été en mesure d'obtenir des résultats. ] manquait dans votre sélecteur.

1voto

Dutchie432 Points 16305

Le mieux est de donner à toutes les images qui commencent par submitVote une classe spécifique

<input id='submitVote1' type='image' src='image.png' class='submit' />
<input id='submitVote2' type='image' src='image.png' class='submit' />

De cette façon, vous pouvez simplement faire...

$('input.submit').live('click',function(){
        var vote=$("#rtngCmb").val();
        var text=$("#userNote").val();
        var alertId=RegExp.$1;
        postVote(alertId, vote, text);
});

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X