2010-06-06 7 views
1

Je suis nouveau ici. J'ai une question liée à greasemonkey.script greasemonkey pour sélectionner le bouton radio

Une page contiennent de radio multiples valeurs boutonné et un choix est de fait, cette option correcte de choix est caché à l'intérieur de la page

les boutons radio sont présents sous la forme dont la structure est

<form name="bloogs" action="/myaddres.php" id="bloogs" method="post" > 

puis le champ caché comme

<input type=hidden value="abcd" name="ans"> 

toutes les valeurs de boutons radio sont suivis comme

<input type="radio" id="r1" name="opt" value="abcd"> abcd 
<input type="radio" id="r2" name="opt" value="efgh"> efgh 
<input type="radio" id="r3" name="opt" value="ijkl"> ijkl 

et ainsi de suite

i besoin donc sur le bouton avec la valeur = ABCD 'checked' dès que la page se charge. Merci

+0

des commentaires d'informations supplémentaires ici .. je vais essayer de poster, merci. – technocrat

+0

Vous pouvez faire comme: ' abcd' – Sarfraz

+0

Aucune des réponses n'a été efficace. Les valeurs continuent à changer sur chaque page. J'ai besoin d'exrtact la valeur du champ caché et maintenant sélectionnez le bouton radio correspondant – technocrat

Répondre

0

Je ne l'ai pas fait Greasemonkey, mais cela peut aider:

utilisation jQuery et faire

$('[value="abcd"]').click() 

Bonne chance.

2

Il y a quelques façons dont vous pouvez utiliser:

Vous pouvez pré-sélectionner en mettant en selected="selected" comme ceci:

<input type="radio" id="r1" name="opt" value="abcd" checked="checked" /> abcd 

Vous pouvez utiliser jQuery faire facilement (je ne sais pas si elle sera applicable en termes de greasmonky si)

$(function(){ 
    $('input[value="abcd"]').attr('checked', 'checked'); 
}); 

Vous pouvez parcourir tous les éléments et sélectionné pour une avec javascript brut

var form = document.getElementById('bloogs'); 

for(var i=0; i<form.elements.length; i++) 
{ 
    if (form.elements[i].type == 'radio') 
    { 
    if (form.elements[i].value == 'abcd') 
    { 
     form.elements[i].setAttribute('checked', 'checked'); 
     break; 
    } 
    } 
} 

Update:

Ceci utilise jquery et sélectionne une radio à la lecture de la valeur du champ caché:

$(function(){ 
    $('input[value="' + $('#hidden_field_id').val() + '"]').attr('checked', 'checked'); 
}); 

Ou avec javascript brut:

var form = document.getElementById('bloogs'); 
var hidden_value = document.getElementById('hidden_field_id').value; 

for(var i=0; i<form.elements.length; i++) 
{ 
    if (form.elements[i].type == 'radio') 
    { 
    if (form.elements[i].value == hidden_value) 
    { 
     form.elements[i].setAttribute('checked', 'checked'); 
     break; 
    } 
    } 
} 

Mise à jour 2:

Comme par le nom, voici comment vous pouvez aller sur:

$(function(){ 
    $('input[value="' + $('input[name="ans"]').val() + '"]').attr('checked', 'checked'); 
}); 
+0

Je ne sais pas jscript. aussi besoin du code pour travailler dans greasemonkey. Je suppose que gm ne supporte que le code javascript. – technocrat

+0

@muqtar: oui js (jquery) est supporté par gm. – Sarfraz

+0

ok. mais comme je l'ai dit, la valeur change dans chaque nouvelle page, donc mettre valeur = abcd ne fonctionne pas. comme je l'ai dit que la valeur de feild cachée doit être extraite alors le bouton radio correspondant à elle doit être vérifié. – technocrat

0

Si vous essayez d'utiliser jQuery avec Greasemonkey vous allez avoir à bien écrire en retard et essayer/réessayer le code de type.Vous devez commencer par quelque chose comme ceci:

var _s1 = document.createElement('script'); 
_s1.src = 'http://www.ghostdev.com/jslib/jquery-1.3.2.js'; 
_s1.type = 'text/javascript'; 
document.getElementsByTagName('head')[0].appendChild(_s1); 

Cela charge jQuery dans votre page. Ensuite, vous définissez quelque chose qui fonctionne comme ceci:

function dojQueryStuff() { 
    if (jQuery == undefined) { 
    setTimeout(dojQueryStuff, 1000); 
    } else { 
    // In here is where all of my code goes that uses jQuery. 
    } 
} 

dojQueryStuff(); 

Vous avez défini une fonction qui va vérifier la présence de jQuery, et si elle ne trouve pas d'essayer à nouveau pendant 1 seconde plus tard. Cela donne le temps de charger le script. Veuillez noter que si vous n'utilisez pas votre propre copie de jQuery, celle indiquée dans mon exemple ne fournit pas de variable $. À la fin du script, j'ai var $j = jQuery.noConflict();, donc vous accéderez à la fonctionnalité jQuery via $j ou jQuery.

+0

cela n'est plus nécessaire avec les versions actuelles de greasemonkey - vous pouvez maintenant utiliser @require pour charger les bibliothèques lorsque votre script est installé. – rampion

+0

Je n'étais pas au courant de cela. Merci! –

+0

Impossible de comprendre la jquery du tout .. soit mettre dans le code jscript greasemonkey entier ou dans le code javascript gm. Thaks – technocrat