2010-08-16 6 views
-1

Cela fonctionne parfaitement sous Chrome, mais dans Firefox, les champs ne sont pas remplis jusqu'à la SECONDE fois que je tape le soumettre sur la page (après le retour de la première fois me disant invalide passe d'utilisateur). Qu'est-ce que je rate?Greasemonkey: le paramétrage des valeurs du formulaire ne fonctionne pas dans Firefox

Ceci est mon code pour le script Greasemonkey:

document.getElementById('loginBtn').addEventListener('click', 
function (event) { 
    document.getElementById('serverLogin').selectedIndex = "2"; 
    document.getElementById('usernameLogin').value = "username"; 
    document.getElementById('passwordLogin').value = "password"; 
    document.getElementById('loginForm').action = 'urltosubmit'; 
    location.href="javascript:(function(){ document.forms['loginForm'].submit(); })()"; 
},true); 

Répondre

0

Vous devez envoyer votre code de forme, mais le problème est le plus probable, la propagation des événements.

changer la fonction de:

document.getElementById('loginBtn').addEventListener('click', 
function (event) { 
    document.getElementById('serverLogin').selectedIndex = "2"; 
    document.getElementById('usernameLogin').value = "username"; 
    document.getElementById('passwordLogin').value = "password"; 
    document.getElementById('loginForm').action = 'urltosubmit'; 
    location.href="javascript:(function(){ document.forms['loginForm'].submit(); })()"; 

    event.preventDefault(); 
    event.stopPropagation(); 
    return false; 
},true); 
0

ou peut-être ...

document.getElementById('loginForm').addEventListener("submit", function(e) 
{ 
    var fields = e.target.elements; 
    fields.namedItem("serverLogin").selectedIndex = 2; 
    fields.namedItem("usernameLogin").value = "username"; 
    fields.namedItem("passwordLogin").value = "password"; 
    e.target.setAttribute("action", "urltosubmit"); 
}, false); 
Questions connexes