2017-05-29 57 views
0

我有一個<input type="text" id="changeText" onchange="changeFct()">,我需要獲取onchange函數以外的文本。如何從JavaScript上的onchange函數動態獲取更改的值?

這是我的javascript:

function changeFct(){ 
    var getText = document.getElementById("changeText").value; 
    return getText; 
} 

var getTextFromOutside = changeFct(); 
console.log("from outside >>>> ", getTextFromOutside); 

所以我需要從平變化的功能之外動態獲取的修改。

編輯 的想法是寫入使用Web界面CSS文件(該接口包含,以便有一些顏色,字體大小等輸入)

我使用JSzip解壓一個包含所有css文件的文件夾這部分工作。

想象一下,我的html輸入被用來詢問字體大小。所以我需要使用一個聽衆的價值例如。

問題是我需要將這個值用於承諾,我使用的承諾,因爲我需要修改3個CSS文件一個接一個。

+0

完全錯誤,var getTextFromOutside = changeFct();這個聲明在變化之前運行,這是未定義的原因 –

+0

謝謝@GovindSamrow我同意並想知道是否有辦法使其工作(我真的需要承諾嗎?) – Sushi

+0

您需要添加更多詳細信息你真的想要做什麼? –

回答

0

此代碼不起作用,因爲changeFct只有在輸入文本的值爲changed時纔會被調用。這就是爲什麼你在輸出中沒有定義的原因。

相反的元素加入onchange事件,而不是使用功能addEventListener的:

function changeFct(value){ 
    Promise.resolve(value).then(function(val){ 
    console.log(value); 
    }); 
} 

document.getElementById('changeText').addEventListener('change', function(){ 
    changeFct(this.value); 
}, false); 

在這裏你可以做任何你想做這個值,而不是聲明一個全局變量,將污染window對象。

+0

嗨@Dimitri,我正在測試你的腳本,有沒有什麼辦法首先使用一個全局變量,在addEventListener中修改它,然後從外部獲取它(修改)? – Sushi

+0

爲什麼你想從外部獲得價值? – Dimitri

+0

我需要它在外面使用它到承諾 – Sushi

0

使用全局varible但使用的onchange後:

var getText = ''; //Declare variable outside 
    function changeFct(){ 
     getText = document.getElementById("changeText").value; 
    } 

但同樣需要平變化的功能之後執行的一個statemnet;

otherFunc(){ 
console.log("from outside >>>> ", getText); 
} 
相關問題