Jquery中的Keyup

时间:2013-03-25 08:36:26

标签: jquery

我想在一个字段中写,之后由以下字段打开。如果我在一个字段中输入文本,然后在其他字段打开但其他字段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>

4 个答案:

答案 0 :(得分:2)

您需要测试#name字段的值,因为您可以使用$(this).val()

您的测试将始终失败,因为两个字符串'#name' == ''永远不会发生错误。

最好使用prop()更改运行时dom属性,例如disabledchecked

$(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');  
        }   

    });
});

工作示例 http://jsfiddle.net/C9297/

答案 2 :(得分:1)

您错过了插入div的 val 来检查是否为空尝试:

 $(document).ready(function() {
        $('#name').keyup(function() {
             $('#version').prop( 'disabled', false);  
        }
        else {
            $('#version').attr( 'disabled', true);
        }   

        });
    });

DEMO

答案 3 :(得分:0)

试试这个:

WORKING DEMO

$(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函数的上下文中。