Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JAVASCRIPT更改输入中的值时触发事件_Javascript_Html - Fatal编程技术网

使用JAVASCRIPT更改输入中的值时触发事件

使用JAVASCRIPT更改输入中的值时触发事件,javascript,html,Javascript,Html,我想触发一个功能,改变我的按钮在网页中的状态。我的输入最初是这样的:- 现在,当我在文本框中键入内容时,我希望它更改如下:- 注意呼叫按钮被激活。我使用onblur方法来监听更改,但这不是动态发生的。我在框中输入一些内容,然后单击“外部”。这就是执行onblur时的点。 当用户更改框中的值时,如何调用onblur方法? 下面是我正在使用的javascript代码 function toggleCallButton() { if (document.getElementById('di

我想触发一个功能,改变我的按钮在网页中的状态。我的输入最初是这样的:-



现在,当我在文本框中键入内容时,我希望它更改如下:-



注意呼叫按钮被激活。我使用onblur方法来监听更改,但这不是动态发生的。我在框中输入一些内容,然后单击“外部”。这就是执行
onblur
时的点。
当用户更改框中的值时,如何调用onblur方法?
下面是我正在使用的javascript代码

function toggleCallButton() {
    if (document.getElementById('dialArea').value == '') {
        document.getElementById('callButton').classList
                .add('input-group-addon-disabled');
        document.getElementById('callButton').classList
                .remove('input-group-addon-active');
    } else {
        document.getElementById('callButton').classList
                .remove('input-group-addon-disabled');
        document.getElementById('callButton').classList
                .add('input-group-addon-active');
    }
}
你试过这个吗

<input type="text" onchange="toggleCallButton();"/>
JAVASCRIPT

function toggleCallButton() {
    if (document.getElementById('dialArea').value == '') {
        document.getElementById('callButton').classList.add('input-group-    addon-disabled');
        document.getElementById('callButton').classList.remove('input-group-addon-active');
    } else {
        document.getElementById('callButton').classList.remove('input-group-addon-disabled');
        document.getElementById('callButton').classList.add('input-group-addon-active');
    }
}
window.onload = toggleCallButton;

就像
onblur
事件一样,也有
onkeyup
onkeypress
事件,您可以在您的案例中使用这些事件。使用onkeyup可以实现这一点,但这会导致每次用户按键时调用我的函数,这会导致许多不必要的函数调用。我想知道是否有一个优雅的解决方案…“onchange”只有在textbox的值与以前的值相比发生更改时才起作用。因此,这是第一次它不起作用,因为状态没有改变…对我来说不起作用…你应该首先用禁用的样式类加载输入。造成问题的不是onchange的值更改语义,问题是,当您从输入中失去焦点时,onchange会触发。如果你问我,你应该检查window.onload的输入文本,如果为空,添加禁用的类,并用onkeyup/onkeydown事件控制流。onkeyup=“toggleCallButton();”是否应该工作nkeyup=“toggleCallButton();”将工作,我同意,但每次我按下一个键时都会调用该函数……如果该函数很大怎么办?每次都会执行…嗯。现在,这改变了一切:)为什么你的功能很大?实际上,你只是对是否有价值感兴趣。
.input-group-addon-disabled{
    opacity: 0.5;
}

.input-group-addon-active{
    opacity: 1;
}
function toggleCallButton() {
    if (document.getElementById('dialArea').value == '') {
        document.getElementById('callButton').classList.add('input-group-    addon-disabled');
        document.getElementById('callButton').classList.remove('input-group-addon-active');
    } else {
        document.getElementById('callButton').classList.remove('input-group-addon-disabled');
        document.getElementById('callButton').classList.add('input-group-addon-active');
    }
}
window.onload = toggleCallButton;