1

op1 と op2 が選択されたときにユーザー名テキスト フィールドが表示され、op3 が選択された場合は両方のテキスト フィールドが表示されます。ラジオ ボタンを選択すると、常にユーザー名とパスワードのテキスト フィールドが表示されるという奇妙なバグがあります。なぜこうなった?

HTML:

<div>Please select operation:<br />
    <input type="radio" id="op1" name="op" value="check_username">Check Username<br />
    <input type="radio" id="op2" name="op" value="find_profile">Find Profile<br />
    <input type="radio" id="op3" name="op" value="check_credentials">Check Credentials
</div><br />

<div id="un">Username:<br /><input type="text" /></div>
<div id="pwd">Password:<br /><input type="text" /></div>

jQuery:

$(document).ready(function() {
    $('#un, #pwd').hide();
    $('input[name="op"]').prop('checked', false);
    $("input[type=button]").attr("disabled", "disabled");

    $('input:radio[name=op]').change(function() {
        var op = $('input:radio[name=op]:checked').val();
        alert(op);
        switch(op) {
            case 'check_username':
            $('#un').show();
            $('#pwd').hide();
            case 'find_profile':
            $('#un').show();
            $('#pwd').hide();
            case 'check_credentials':
            $('#un, #pwd').show();
        }
    });
});
4

2 に答える 2

2

break各ステートメントの後にステートメントがありませんcaseそれらを追加した後、正常に動作しています!

于 2013-04-20T01:35:42.967 に答える
0

それぞれの場合で「ブレーク」を忘れました:

    switch(op) {
        case 'check_username':
        $('#un').show();
        $('#pwd').hide();
        break;
        case 'find_profile':
        $('#un').show();
        $('#pwd').hide();
        break;
        case 'check_credentials':
        $('#un, #pwd').show();
        break;
    }
于 2013-04-20T01:37:49.793 に答える