我有一个 ajax 脚本,它使用从服务器返回的搜索结果填充页面上的 div。每个搜索结果都有一个带有第二个 javascript 函数的超链接,该函数在页面上设置隐藏的输入值以发回服务器,具体取决于用户单击的结果。所有这些工作正常。
但是,在第二个 javascript 函数中,我还想将原始 div 的内容设置为所选值,但我无法让它工作。
起始页上的 html
<input type="text" onkeyup="getResults(this.value)"><div id="results"></div>
<input type="hidden" name="result" value="<div id='chosenresult'></div>">
ajax 返回的标记:
<a href="javascript:void(0);" onclick ="setResult(1)">Result1</a><br>
<a href="javascript:void(0);" onclick ="setResult(2)">Result2</a><br>
用于 setResult 的 Javascript
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;
}
换句话说,我可以在隐藏的输入字段中设置值,但不能替换“结果” div 的内容。
感谢您的任何建议!
编辑:
我发现了错误。将 div 放入隐藏输入选项卡的值中可以作为设置值的黑客手段,但这是不必要的,并且似乎破坏了代码,因此未设置结果 div。代替 div,只需为隐藏的输入选项卡提供一个 id 并在 javascript 中设置其值,如下所示:
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