0

1つのフィールドに書き込み、その後次のように開きます.1つのフィールドにテキストを入力し、その後、他のフィールドは開いていますが、他のフィールドは開いていません。私を助けてください

<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' == ''2つの文字列は決して等しくないため、テストは常に失敗します。

また、prop()disabledを使用して、checkedなどのランタイムdomプロパティを変更することをお勧めします。

$(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

valdivを挿入して、空かどうかを確認するのを忘れています。これを試してください。

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

または、 elem関数$(this).val()のコンテキストにあるため、それを表す方が適切です。$('#name')

于 2013-03-25T08:47:41.883 に答える