2017-05-29 25 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); 
} 
相关问题