2010-08-02 4 views
2

Comment puis-je créer une étiquette de formulaire en utilisant onsubmit (qui s'exécute en appuyant sur enter) qui ouvre une fenêtre cible avec un URL donné sous forme de variable chaîne?passer l'URL stockée en tant que chaîne dans la variable de la sous-émission

ce que j'ai jusqu'à présent:

<div id="row2"> 

<!-- Intranet Search --> 
<form action="" onSubmit="urlGen(this);" method="get" target="_blank"> 
<input type="text" id="intranet" size="15" value="Search Intranet.." 
    onFocus="this.value = ''" 
    onBlur="this.value = 'Search Intranet..'"/> 
</form> 

<script language="javascript" type="text/javascript"> 
    function urlGen(f) 
    { 
    var i1 = "seg1"; 
    var i2 = f.intranet.value; 
    var i3 = "seg3"; 

    var fullURL = i1 + i2 + i3; 
    f.action = i1 + i2 + i3; 

    //document.write(fullURL); 

    return true; 
    } 
</script> 

<br><br> 

<a href="javascript: void(0)" onClick="urlGen();" target="_blank"> 
    <div id="submit" class="out" 
    onMouseOver="document.getElementById('submit').className = 'over';" 
    onMouseOut="document.getElementById('submit').className = 'out';"> 
    <span>Submit</span> 
    </div> 
</a> 
</div> 

modifier: encore havent résolu ce; toute aide de quelqu'un plus expérimenté avec javascript serait grandement appréciée!

+0

Qu'est-ce qui ne fonctionne pas avec ce que vous avez maintenant? La définition de l'attribut "action" sur l'élément de formulaire est la bonne approche. – Pointy

+0

il ouvre une nouvelle fenêtre cible à la bonne url sauf que le terme de recherche est manquant, ce qui je ne sais pas comment cela peut être depuis quand j'ajoute: alert (fullURL); au script il affiche correctement l'URL complète que je voudrais passer à la fenêtre cible. – jake

Répondre

1

Vous devez donner à votre élément <input> une valeur « name »:

<input type="text" name="intranet" id="intranet" size="15" ... 

Sinon, votre code Javascript pourrait utiliser document.getElementById("intranet") pour obtenir une référence à l'élément d'entrée.

De plus, bien que cela ne soit pas directement pertinent, mettre un <div> dans une balise <a> n'est pas un balisage valide.

+0

En ajoutant name = "intranet", ceci a été lié à la page: - 0,000363 jake

Questions connexes