![](/img/trans.png)
[英]How to change input.value to capitalize before submitting to array Javascript
[英]Javascript input.value Change Not Displaying In Browser
以下內容未提供我在Chrome或Firefox中可以看到的任何更改:
var field = document.getElementById( 'input-id' ), nodeName;
if ( field !== null ) {
nodeName = field.nodeName.toLowerCase();
if( nodeName === 'input' || nodeName === 'textarea' ) {
field.value = 'hello';
console.log( field.value );
}
}
這是目標:
<input id="input-id" name="input-name" type="text" required="required" placeholder="example">
但控制台報告兩者中的正確值。 為什么? 我正在使用經過驗證的HTML5。 該腳本位於結束body
標記之前。
你正在使用,
而不是.
編輯你的代碼,交配:
var field = document.getElementById( 'input-id' ).nodeName;
由於您已經說明了以下內容,因此可能不是腳本加載問題:
該腳本位於結束正文標記之前。
您必須在頁面上具有多個具有相同id
元素。 查看您的源(Firefox上的Ctrl + U )並搜索input-id 。 確保頁面上只有一個元素具有該ID。
您還可以通過在其他console.log
調用中添加以下行來記錄要更改的元素:
console.log( field );
這應該將整個元素記錄到控制台,並幫助您進一步調試。
嘗試這個
$(function() {
var field = document.getElementById( 'input-id' ), nodeName;
if ( field !== null ) {
nodeName = field.nodeName.toLowerCase();
if( nodeName === 'input' || nodeName === 'textarea' ) {
field.value = 'hello';
console.log( field.value );
}
}
});
或者將您的腳本放在頁面的末尾。
原因是它不起作用,因為你的腳本在輸入標記render之前執行。所以把它放在end或body load事件中,或者如果你使用jquery而不是放入文檔就緒函數
您的腳本可能在輸入元素之前加載。
嘗試將您的代碼段放在頁面底部。
我認為你缺少添加onload function
。 您可以將它添加到<body>
類的
<body onload="sumfunction();">
或者在javascript中
<script>
window.onload = sumfunction;
</script>
這是一個例子: http : //jsbin.com/ezovun/1/edit
事實證明,在我使用OP中的代碼設置它后,我意外地將輸入值覆蓋到腳本中其他位置的空字符串。 我的console.log位於它所在的位置,在覆蓋之前抓取了該值,這就是為什么它報告了正確的值,盡管在瀏覽器中得到了不同的結果。 我為沒有發布整個腳本而道歉,但我試圖提供一個簡化的例子。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.