我有一個weebly站點,啓用了'給賣家的備註'選項。沒有辦法編輯這個字段,所以我試圖用javascript添加一個自定義的消息到textarea,我遇到了一些麻煩。 textarea沒有id,只有一個name屬性。使用javascript設置textarea innerhtml導致未定義的錯誤(weebly站點)
HTML代碼:
document.getElementsByName("order_notes")[0].innerHTML="PUT YOUR PERSONALIZED MESSAGE HERE";
var standard_message = document.getElementsByName("order_notes")[0].innerHTML;
var x = document.getElementsByName("order_notes")[0];
x.addEventListener("focus", myFocusFunction, true);
x.addEventListener("blur", myBlurFunction, true);
function myFocusFunction() {
if (document.getElementsByName("order_notes")[0].innerHTML == standard_message)
document.getElementsByName("order_notes")[0].innerHTML="";
}
function myBlurFunction() {
if (document.getElementsByName("order_notes")[0].innerHTML == "")
document.getElementsByName("order_notes")[0].innerHTML=standard_message;
}
<div id="wsite-com-checkout-notes">
<form>
<h2 class="wsite-panel-title">Note to Seller (Optional)</h2>
<div class="wsite-form-field">
<div class="wsite-form-input-container">
<textarea class="wsite-form-input wsite-input" name="order_notes"></textarea>
</div>
</div>
</form>
</div>
當查看結帳頁面(其中場),我立刻看到這個錯誤在控制檯:遺漏的類型錯誤:無法設置屬性「的innerHTML '的未定義,但如果我再次在控制檯中鍵入代碼,它可以很好地工作。代碼在關閉「body」標籤之前執行,所以textarea已經在代碼開始運行時創建了。我也試着用window.onload運行代碼,但是我仍然得到相同的錯誤。
我嘗試使用jQuery第一,但由於某種原因Weebly不會識別該函數,即使該庫已加載,並且還有其他函數已經使用jQuery。
任何想法可能導致這種情況?所有幫助表示讚賞!
您應該在文本區域使用值而不是innerhtml。不知道這是否能解決您的問題,但這是設置其值的正確方法是使用value屬性。 – AtheistP3ace
我試着用價值第一,並有同樣的錯誤,然後我切換到innerhtml,看看它是否作出了差異,但它沒有。無論如何謝謝澄清。 –
好的。抱歉。我會繼續保持價值並試圖解決這個未定義的問題。現在不在家,否則我會試着仔細觀察。 – AtheistP3ace