我想在一个字段中写,之后由以下字段打开。如果我在一个字段中输入文本,然后在其他字段打开但其他字段dus未打开,我想要。请帮帮我
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script>
$(document).ready(function() {
$('#name').keyup(function() {
if($('#name' == '')){
$('#version').attr( 'disabled', 'disabled' );
}
else {
$('#version').removeAttr( 'disabled', 'disabled');
}
});
});
</script>
</head>
<body>
<div>
<form>
Name: <input type="text" name="name" id="name" />
Version: <input type="text" name="version" id="version"/>
Build: <input type="text" name="build" id="build"/>
<input type="submit" value="Submit" id="submit"/></br>
<input type="text">
</form>
</div>
</body>
</html>
答案 0 :(得分:2)
您需要测试#name
字段的值,因为您可以使用$(this).val()
。
您的测试将始终失败,因为两个字符串'#name' == ''
永远不会发生错误。
最好使用prop()更改运行时dom属性,例如disabled
,checked
等
$(document).ready(function() {
$('#name').keyup(function() {
$('#version').prop( 'disabled', !!$(this).val());
});
});
演示:Fiddle
答案 1 :(得分:2)
您需要考虑条件中val
输入的name
。我还认为将事件处理程序绑定到blur
事件会更合适。
$(document).ready(function() {
$('#name').blur(function() {
if($('#name').val() == ''){
$('#version').attr( 'disabled', 'disabled' );
}
else {
$('#version').removeAttr( 'disabled', 'disabled');
}
});
});
答案 2 :(得分:1)
您错过了插入div的 val
来检查是否为空尝试:
$(document).ready(function() {
$('#name').keyup(function() {
$('#version').prop( 'disabled', false);
}
else {
$('#version').attr( 'disabled', true);
}
});
});
答案 3 :(得分:0)
试试这个:
$(document).ready(function() {
$('#version').prop( 'disabled', true); // <--page load you have to dissble
$('#name').keyup(function() {
if($(this).val() == '')){
$('#version').prop( 'disabled', true);
}else {
$('#version').prop( 'disabled', false);
}
});
});
这是错误的做法:
$('#name' == '')
这应该是:
$('#name').val() == ''
或更好地用$(this).val()
来表示它,因为我们处于$('#name')
elem函数的上下文中。