2010-06-04 4 views
0

J'essaie de supprimer le "_" dans le "change_option". J'ai réussi à ajouter la classe ok mais c'est toutsupprimer le texte d'une fonction (je pense)

<select onchange="change_option('SELECT___100E___7',this.options[this.selectedIndex].value)" name="SELECT___100E___7" class="link_fix3"> 

Voici le code que j'ai jusqu'à présent ...

$("form select[onchange^='change_option']") 
    .addClass('link_fix3') 
    .attr('onchange', function(k,x){ 
    return x.replace('_','');}) 
+0

Essayez putti Même l'onchange même dans jQuery, de cette façon vous n'avez pas à vous en préoccuper. –

Répondre

0

Sans connaître les entrailles, il semble que vous essayez d'appeler changeoption(name, value), vous pouvez le faire entièrement en jQuery, comme ceci:

$("form select[onchange^='change_option']") 
    .addClass('link_fix3') 
    .change(function() { 
    changeoption(this.name, $(this).val()); 
    }); 

Bien plus de détails, cela peut sans doute être encore plus simple, par exemple donne la <select> une classe au départ une option? Cela rendrait le sélecteur beaucoup plus propre, vous pouvez laisser l'onchange attribuer complètement initial ... vous devez admettre cela ressemble plus jolie :)

<select name="SELECT___100E___7" class="link_fix3"> 

Script comme ceci:

$("form select.link_fix3").change(function() { 
    changeoption(this.name, $(this).val()); 
}); 

Si vous poster ce que votre fonction changeoption ressemble, je pourrais améliorer la réponse pour montrer des simplifications supplémentaires, si l'une de ces options que je propose sont faisables ... Je sais que le contrôle des programmeurs sur le balisage varie considérablement, alors laissez-nous savoir quelles options vous faire avoir.

+0

Eh bien, le code affiché fonctionne! La seule raison pour laquelle j'ajoute la classe est que j'ai besoin de travailler pour cibler la fonction mais je vois que cela ne sera pas nécessaire, donc j'ai enlevé le code .addClass ('link_fix3') et ça marche tout de même. Merci !!! – user357034

+1

@user - Bienvenue :) Assurez-vous d'accepter les réponses via la coche sur la gauche si elle résout votre problème, elle vous aide également à obtenir des réponses aux questions plus rapidement :) –

+0

Eh bien comme je l'ai dit, ça marche mais je pense que ça ne va pas comme je le pensais. Il semble qu'il change le nom de la fonction après l'activation de onchange. Désolé si je ne l'explique pas correctement. Toute façon de changer le nom et non le nom comme résultat de l'action? Je m'attendrais à ce que le balisage soit changé dès que la page se charge ce qui n'est pas le cas ici. Je sais que cela fonctionne cependant parce qu'il appelle la fonction changeoption et non la fonction change_option. J'espère que vous comprenez ce que j'essaie de dire? – user357034

0

juste une pensée ... si vous faites cela,

$("form select[onchange^='change_option']") 
    .addClass('link_fix3') 
    .attr('onchange', function(k,x){ 
    return x.replace('_','');}) 

la sortie serait,

onchange="changeoption('SELECT00E7',this.options[this.selectedIndex].value)" // notice your, 'SELECT___100E___7' 

Je suggère cela,

$("form select[onchange^='change_option']") 
     .addClass('link_fix3') 
     .attr('onchange', function(k,x){ 
     return x.replace('change_option','changeoption');}) 

qui est, si vous Vraiment vouloir le résoudre de cette façon ...

+0

J'ai essayé ça et ça ne marche pas fais du boulot, mais merci !!! – user357034

Questions connexes