根据用户输入,使Javascript立即/立即可互换

根据用户输入,使Javascript立即/立即可互换,javascript,html,forms,Javascript,Html,Forms,在js代码中,我创建了3个按钮——按钮1…按钮2…按钮3 和3个输入字段---输入字段1…输入字段2…输入字段3 从脚本开始,所有按钮都被禁用 只有当输入字段1和2具有计算值时,按钮1才会激活(您可以单击它) 只有当输入字段1和3具有计算值时,按钮2才会激活 只有当输入字段2和3具有计算值时,按钮3才会激活 我的问题是,当我为输入字段1和2输入一个计算值时,按钮1将不会激活(在可点击中),即使它被认为是激活的 比方说,我重拨了我的代码,使我的整个代码向后,因此,在我的脚本开始时,所有的按钮都没有

在js代码中,我创建了3个按钮——按钮1…按钮2…按钮3 和3个输入字段---输入字段1…输入字段2…输入字段3

从脚本开始,所有按钮都被禁用

只有当输入字段1和2具有计算值时,按钮1才会激活(您可以单击它)

只有当输入字段1和3具有计算值时,按钮2才会激活

只有当输入字段2和3具有计算值时,按钮3才会激活

我的问题是,当我为输入字段1和2输入一个计算值时,按钮1将不会激活(在可点击中),即使它被认为是激活的

比方说,我重拨了我的代码,使我的整个代码向后,因此,在我的脚本开始时,所有的按钮都没有被禁用(你可以点击它们)。然后我做了一个简单的条件语句

输入字段1=if1
输入字段2-if2

在用户单击按钮之前,按钮1不会立即禁用。如果用户要在输入字段1中重新输入适当的值类型,按钮1将不会激活(可单击),因为它显然是永久禁用的

总之,我想问的是,是否有一种方法可以让JavaScript即时交互。例如web浏览器搜索栏。当您键入某个内容时,您会立即得到一个可能的问题列表,当您没有在其中键入任何内容时,列表将消失,浏览器将恢复其原始状态

如有任何建议/帮助,将不胜感激

由于生活和它的问题,我的一些代码是如何被删除的。因此,缺乏代码和一堆单词。对不起。

这是你的做法

禁用html按钮

document.getElementById("Button").disabled = true;
document.getElementById("Button").disabled = false;
启用html按钮

document.getElementById("Button").disabled = true;
document.getElementById("Button").disabled = false;

已编辑

试试这个

将addEventListener应用于该DOM对象:

document.getElementById("IDTeam").addEventListener("change", function() {//call function here});
对于IE

document.getElementById("IDTeam").attachEvent("onchange", function() {//call function here} );
var field1=document.getElementById('if1');
var field2=document.getElementById('if2');
var field3=document.getElementById('if3');
var button1=document.getElementById('button1');
var button2=document.getElementById('button2');
var button3=document.getElementById('button3');
field1.addEventListener('input',function(){
if(this.value!=''&&field2.value!='')
按钮1.disabled=false;
其他的
按钮1.disabled=true;
if(this.value!=''&&field3.value!='')
按钮2.disabled=false;
其他的
按钮2.disabled=true;
});
field2.addEventListener('input',function(){
if(this.value!=''&&field1.value!='')
按钮1.disabled=false;
其他的
按钮1.disabled=true;
if(this.value!=''&&field3.value!='')
按钮3.disabled=假;
其他的
按钮3.disabled=true;
});
字段3.addEventListener('input',function(){
if(this.value!=''&&field1.value!='')
按钮2.disabled=false;
其他的
按钮2.disabled=true;
if(this.value!=''&&field2.value!='')
按钮3.disabled=假;
其他的
按钮3.disabled=true;
});


按钮1 按钮2
按钮3(使用属性)

您可以检查下面使用
oninput
事件和属性来有效处理您的情况的答案

我添加了一个
数据目标
属性,将元素链接在一起以满足您的需求

例如,要匹配规则,只有当输入字段1和2具有计算值时,
按钮1的
数据目标
文本框1和2的id时,按钮1才会被激活(您可以点击它)

工作代码段:

函数checkInput(){
var dataTarget='数据目标';
var elm=event.target;
var targetAttrs=getAttr(elm,dataTarget);
中频(目标电视台){
var targetButtons=targetAttrs.split(',');
对于(变量i=0;i0&&isNaN(val));
}
函数getAttr(elm,name){
var-val;
如果(榆树){
var attrs=elm.attributes;
对于(变量i=0;i





its
disabled=true
not
disable=true
。并显示更多代码。
如果(if1.length=0)
不是布尔测试-这是一个赋值。您可能希望使用
if(if1.length==0)
。我在下面给出了一个比您接受的硬编码版本更通用的属性解决方案:-)@Jamisco您将执行检查的代码放入输入字段的
onchange
处理程序中。是的,只要输入字段发生更改,它就会得到动态验证以禁用或启用按钮。谢谢,这真的把一切都弄清楚了。真的很感激。很高兴它有帮助:)