簡體   English   中英

Javascript input.value更改未在瀏覽器中顯示

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM