J'ai un script ajax travail qui remplit un div sur une page avec des résultats de recherche renvoyés par le serveur. Chaque résultat de recherche a un lien hypertexte avec la deuxième fonction javascript qui définit la valeur d'entrée cachée sur la page pour la publication sur le serveur, en fonction du résultat sur lequel l'utilisateur clique. Tout cela fonctionne bien.javascript remplacer le contenu dans div
Cependant, dans la deuxième fonction javascript, je souhaite également définir le contenu du div d'origine sur la valeur sélectionnée et je n'arrive pas à faire fonctionner ceci.
html à la page de départ
<input type="text" onkeyup="getResults(this.value)"><div id="results"></div>
<input type="hidden" name="result" value="<div id='chosenresult'></div>">
balisage retourné par ajax:
<a href="javascript:void(0);" onclick ="setResult(1)">Result1</a><br>
<a href="javascript:void(0);" onclick ="setResult(2)">Result2</a><br>
Javascript pour setResult
function setResult(varname) {
document.getElementById('chosenresult').value = varname; //WORKS FINE
document.getElementById('results').value = varname; //DOES NOT WORK
document.getElementById('results').innerHTML = varname; //ALTERNATIVE ALSO DOES NOT WORK
return false;
}
En d'autres termes, je peux définir la valeur dans l'entrée cachée champ, mais ne peut pas remplacer le contenu de la div "résultats".
Merci pour vos suggestions!
EDIT:
Je TROUVE LA FAUTE. Mettre un div dans la valeur de l'onglet d'entrée caché a fonctionné comme un hack pour définir la valeur mais n'était pas nécessaire et semble avoir brisé le code de sorte que le résultat div n'était pas défini. Au lieu d'une div, il suffit de donner un identifiant à l'onglet d'entrée cachée et en définissant sa valeur en javascript fonctionne comme suit:
html
<div id="results"></div>
<input type="hidden" name = "result" id="chosenresult">
javascript
document.getElementById('chosenresult').value = varname; //WORKS FINE
document.getElementById('results').innerHTML = varname; //NOW WORKS
EDIT: hé, désolé à ce sujet. Peut-être que vous avez besoin d'échapper le code HTML qui va dans la valeur de la deuxième entrée? –
N'utilisez pas 'var' comme nom de variable/argument. –
'document.getElementById ('chosenresult'). Value = var; // WORKS FINE' - Il ne devrait pas faire. Vous n'avez pas de div avec cet ID dans le code. – Quentin