【发布时间】:2018-12-07 20:59:20
【问题描述】:
我想要做的是,当输入与变量名称相同时,用户无法按下按钮“change”,但当输入不同时,用户可以按下按钮 'change' 并且值名称会改变,但问题是变量没有改变......为什么?
代码如下:
<!DOCTYPE html>
<html>
<head>
<title>App</title>
</head>
<body>
<form id="sendNameForm">
<input id="name" type="text" value="John"/>
<button id="sendNameBtn" type="submit" disabled>Change</button>
</form>
<script src="jquery-1.12.4.js"></script>
<script>
$('#sendNameForm').submit(function() {
var name = $('#name').val();
dis_enableNameSend();
alert("Success!");
return false;
});
var name= $('#name').val();
function dis_enableNameSend(){
var newName = $('#name').val();
if(newName==name){
document.getElementById("sendNameBtn").disabled = true;
}else{
document.getElementById("sendNameBtn").disabled = false;
}
}
$('#name').on('input', function() {
dis_enableNameSend();
});
</script>
</body>
</html>
谢谢!
【问题讨论】:
-
我已经试过你的代码,它工作正常。你认为变量
name没有变化吗? -
name是保留字,有副作用。重命名并重试。 -
另外,从
var name = $('#name').val();中删除var以更新全局而不是创建本地 -
例如,当我插入“Mark”并按“更改”时,变量应该从“John”更改为“Mark”,但这不起作用,因为如果是在我写有“Mark”时输入我将无法按“更改”
-
谢谢!问题是我正在创建一个局部变量......我完全错过了......感谢您的帮助! :D 也许更改名称变量是一个好主意,因为它可能会在未来引起问题!谢谢!
标签: javascript jquery html variables