Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.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中的textfield值发生变化时,如何调用函数?_Javascript_Html_Css_Function_Dom - Fatal编程技术网

当Javascript中的textfield值发生变化时,如何调用函数?

当Javascript中的textfield值发生变化时,如何调用函数?,javascript,html,css,function,dom,Javascript,Html,Css,Function,Dom,当用户使用Javascript(如果可能的话)在文本字段中输入超过17个字符时,我想改变文本字段的宽度,否则可以通过任何其他方式 我写了一个代码来做同样的事情,但它只会在用户输入超过17个字符后在文本字段外单击时更改宽度。我希望它在用户输入超过17个字符时自动更改宽度: 函数加宽(){ var值=nametf.value; 如果(value.length>17){ nametf.style.width='300px'; }否则{ nametf.style.width='200px'; } }

当用户使用Javascript(如果可能的话)在文本字段中输入超过17个字符时,我想改变文本字段的宽度,否则可以通过任何其他方式

我写了一个代码来做同样的事情,但它只会在用户输入超过17个字符后在文本字段外单击时更改宽度。我希望它在用户输入超过17个字符时自动更改宽度:

函数加宽(){
var值=nametf.value;
如果(value.length>17){
nametf.style.width='300px';
}否则{
nametf.style.width='200px';
}
}
#nametf{
宽度:200px;
高度:20px;
填充物:5px10px;
}
TEXTFIELD测试
  • 您需要使用
    this
    向函数传递自引用。我也会将on-change更改为on-key-up,因为on-change会等待您将焦点从字段移开
  • onkeyup=“加宽(此)”
    
  • 然后需要使用变量“
    nametf
    ”参数化函数
  • 函数加宽(nametf){
    // ...
    }
    
    例子
    函数加宽(nametf){
    var值=nametf.value;
    如果(value.length>17){
    nametf.style.width='300px';
    }否则{
    nametf.style.width='200px';
    }
    }
    #nametf{
    宽度:200px;
    高度:20px;
    填充物:5px10px;
    }
    TEXTFIELD测试
    
    onchange
    在输入失去焦点时被激活,这就是为什么单击外部时它会工作。另一方面,当值更改时,
    oninput
    将立即触发:

    const nametf=document.getElementById('nametf');
    函数(){
    var值=nametf.value;
    如果(value.length>17){
    nametf.style.width='300px';
    }否则{
    nametf.style.width='200px';
    }
    }
    #nametf{
    宽度:200px;
    高度:20px;
    填充物:5px10px;
    }
    
    
    试试这个:

    var nametf=document.getElementById(“nametf”);
    nametf.addEventListener(“输入”,函数(){
    如果(nametf.value.length>17){
    nametf.size=“30”;
    }否则{
    nametf.size=“20”;
    }
    });
    
    #nametf{
    高度:20px;
    填充物:5px10px;
    }
    TEXTFIELD测试
    
    这是否回答了您的问题?关于如何在文本更改时执行一些Javascript,堆栈溢出有很多问题。你试过哪种方法?为什么没有具体解决你的问题?