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