我有一個ajax腳本工作,它使用從服務器返回的搜索結果填充頁面上的div。每個搜索結果都有第二個javascript函數的超級鏈接,它根據用戶點擊哪個結果在頁面上設置隱藏的輸入值,以便發回服務器。所有這一切工作正常。javascript替換div中的內容
但是,在第二個JavaScript函數中,我也想將原始div的內容設置爲選定的值,但我無法使其工作。
起始頁上的HTML
<input type="text" onkeyup="getResults(this.value)"><div id="results"></div>
<input type="hidden" name="result" value="<div id='chosenresult'></div>">
標記阿賈克斯返回:
<a href="javascript:void(0);" onclick ="setResult(1)">Result1</a><br>
<a href="javascript:void(0);" onclick ="setResult(2)">Result2</a><br>
的JavaScript的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;
}
換句話說,我可以在隱藏的輸入設置的值字段,但不能替換「結果」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
編輯:嘿,對不起。也許你需要轉義進入第二個輸入值的html? –
不要使用'var'作爲變量/參數名稱。 –
'document.getElementById('chosenresult')。value = var; //作品精美「 - 它不應該這樣做。您的代碼中沒有包含該ID的div。 – Quentin