0

我想在一个字段中写入,然后由以下内容打开。如果我在一个字段中输入文本,然后其他字段正在打开但其他字段未打开,我想要它。请帮我

<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

4 回答 4

2

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

您的测试将始终失败,因为这两个字符串'#name' == ''永远不会相等。

此外,最好使用prop()来更改运行时 dom 属性disabled,例如checked

$(document).ready(function() {
    $('#name').keyup(function() {
        $('#version').prop( 'disabled', !!$(this).val());  
    });
});

演示:小提琴

于 2013-03-25T08:38:23.417 回答
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/

于 2013-03-25T08:38:54.980 回答
1

你错过了插入val你的 div 来检查是否为空试试这个:

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

        });
    });

演示

于 2013-03-25T08:38:08.053 回答
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 函数的上下文中。

于 2013-03-25T08:47:41.883 回答