Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.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:禁用文本字段don';行不通_Javascript - Fatal编程技术网

Javascript:禁用文本字段don';行不通

Javascript:禁用文本字段don';行不通,javascript,Javascript,我曾经尝试过为表单编写一些javascript,当用户键入某个单词时,下面的文本字段将自动禁用。问题是,当我在JSFIDLE中尝试代码时,代码将顺利运行,但当我在项目中使用它时,它不起作用。 谁能解释一下我的代码有什么问题吗 <script> function matchWord(e){ if(document.getElementById('uname').value.trim === 'Unknown' || document.getElementById('uname').va

我曾经尝试过为表单编写一些javascript,当用户键入某个单词时,下面的文本字段将自动禁用。问题是,当我在JSFIDLE中尝试代码时,代码将顺利运行,但当我在项目中使用它时,它不起作用。 谁能解释一下我的代码有什么问题吗

<script>
function matchWord(e){
if(document.getElementById('uname').value.trim === 'Unknown' || document.getElementById('uname').value.trim === 'unknown'){
    document.getElementById('pword').disabled = true;
    document.getElementById('response').disabled = true;
    alert('you enter bannned name in the field');
 }
else{
 }
}
document.getElementById('uname').onkeyup = matchWord();
</script>

<html>
   <body>
       Name:<input type="text" name="uname" id="uname" placeholder="Username"><br>
       password:<input type="password" name='pword' id='pword' placeholder="password"><br>
       Responsibility:<select id = "response">
                     <option>---Responsibility---</option>
                      </select>
   </body>
</html>

函数匹配字(e){
if(document.getElementById('uname').value.trim=='Unknown'| | document.getElementById('uname').value.trim=='Unknown'){
document.getElementById('pword').disabled=true;
document.getElementById('response').disabled=true;
警报(“您在字段中输入银行名称”);
}
否则{
}
}
document.getElementById('uname')。onkeyup=matchWord();
名称:
密码:
责任: ---责任---
您正在将函数结果设置为KeyUp事件的EventHander,并且您希望设置函数本身

尝试:

而是在元素本身中添加事件处理程序,删除前一行并添加:

<input type="text" name="uname" id="uname" placeholder="Username" onkeyup="matchWord()">

您正在将函数结果设置为KeyUp事件的EventHander,并且您希望设置函数本身

尝试:

而是在元素本身中添加事件处理程序,删除前一行并添加:

<input type="text" name="uname" id="uname" placeholder="Username" onkeyup="matchWord()">

下面的代码在所有浏览器中都适用
名称:
密码:
责任: ---责任--- 函数匹配字(e){ if(document.getElementById('uname').value.trim()=='Unknown'| | document.getElementById('uname').value.trim()=='Unknown'){ document.getElementById('pword').disabled=true; document.getElementById('response').disabled=true; 警报(“您在字段中输入银行名称”); } 否则{ } } document.getElementById('uname')。addEventListener(“键控”,函数(evt){ 匹配词(evt); },假);
下面的代码在所有浏览器中都适用
名称:
密码:
责任: ---责任--- 函数匹配字(e){ if(document.getElementById('uname').value.trim()=='Unknown'| | document.getElementById('uname').value.trim()=='Unknown'){ document.getElementById('pword').disabled=true; document.getElementById('response').disabled=true; 警报(“您在字段中输入银行名称”); } 否则{ } } document.getElementById('uname')。addEventListener(“键控”,函数(evt){ 匹配词(evt); },假);
问题1:输入错误
matchword()
,将其替换为
matchword()

问题2:修剪是一种方法!改用
document.getElementById('uname').value.trim()

函数匹配字(e){
if(document.getElementById('uname').value.trim()=='Unknown'| | document.getElementById('uname').value.trim()=='Unknown'){
document.getElementById('pword').disabled=true;
document.getElementById('response').disabled=true;
警报(“您在字段中输入银行名称”);
}
}
名称:

密码:
责任: ---责任---
问题1:输入错误
matchword()
,将其替换为
matchword()

问题2:修剪是一种方法!改用
document.getElementById('uname').value.trim()

函数匹配字(e){
if(document.getElementById('uname').value.trim()=='Unknown'| | document.getElementById('uname').value.trim()=='Unknown'){
document.getElementById('pword').disabled=true;
document.getElementById('response').disabled=true;
警报(“您在字段中输入银行名称”);
}
}
名称:

密码:
责任: ---责任---
首先不是属性,而是方法。因此,您需要将其从
trim
更改为
trim()

Second您需要将函数分配给
onkeyup
,而不是调用函数

函数匹配字(e){
if(document.getElementById('uname').value.trim()=='Unknown'| | document.getElementById('uname').value.trim=='Unknown'){
document.getElementById('pword').disabled=true;
document.getElementById('response').disabled=true;
警报(“您在字段中输入银行名称”);
}else{}
}
document.getElementById('uname')。onkeyup=matchWord
名称:
密码:
责任: ---责任---
首先不是属性,而是方法。因此,您需要将其从
trim
更改为
trim()

Second您需要将函数分配给
onkeyup
,而不是调用函数

函数匹配字(e){
if(document.getElementById('uname').value.trim()=='Unknown'| | document.getElementById('uname').value.trim=='Unknown'){
document.getElementById('pword').disabled=true;
document.getElementById('response').disabled=true;
警报(“您在字段中输入银行名称”);
}else{}
}
document.getElementById('uname')。onkeyup=matchWord
名称:
密码:
责任: ---责任---
您提供的示例中有一些错误

  • 首先,名称区分大小写,因此
    matchWord
    matchWord
    不同。小心
  • 其次,您需要使用
    document.getElementById('uname').onkeyup=matchWord
    将函数本身分配给事件,而不是它返回的结果
  • 第三点也是最后一点,您的方法中的逻辑是错误的,因为您使用了
    trim
    而不是
    trim()
    ,这与上面提到的错误完全相反,它返回的是函数而不是值。下面的代码片段
    Below code works fine for me in all browsers
    
    <html>
       <body>
           Name:<input type="text" name="uname" id="uname" placeholder="Username"><br>
           password:<input type="password" name='pword' id='pword' placeholder="password"><br>
           Responsibility:<select id = "response">
                         <option>---Responsibility---</option>
                          </select>
       </body>
       <script>
    function matchWord(e){
    if(document.getElementById('uname').value.trim() === 'Unknown' || document.getElementById('uname').value.trim() === 'unknown'){
        document.getElementById('pword').disabled = true;
        document.getElementById('response').disabled = true;
        alert('you enter bannned name in the field');
     }
    else{
     }
    }
    document.getElementById('uname').addEventListener("keyup", function(evt) {
            matchWord(evt);
        }, false);
    </script>
    </html>
    
    <script> // stuff </script>
    
    <html> // here </script>