0

選択に基づいて特定のフォームを生成するためのこのコードがあります。

$(document).ready(function(){
    $('#dealerform').hide();
    $('#customerform').hide();
    $('#select').change(function(){
        $('#dealerform,#customerform').hide();
        $($(this).find('option:selected').attr('value')).show();
    });
});

$(document).ready(function(){
    $("input[name='emailquest']").change(function(){
    if (this.value != "1") { // <----I would probably change this to look for this.checked
        $("input[name='email']").prop("disabled", true);
    } else {
        $("input[name='email']").prop("disabled", false);
    }
    });
});                     

さて、このコードで日付ピッカーを追加しようとするコードを追加しましたが、以前のコードが壊れて、一度にすべてを提供するだけで、日付ピッカーは機能しません。誰かがここで間違っていることを知っていて、可能性のある日付ピッカーの解決策を持っていますか?

$(function(){
    $("#datepicker").datepicker();
});

ありがとう

4

2 に答える 2

3

各コード ブロックを新しい $(document.ready() でラップする必要はありません。

これ:

$(document).ready(function(){
    $('#dealerform').hide();
    $('#customerform').hide();
    $('#select').change(function(){
        $('#dealerform,#customerform').hide();
        $($(this).find('option:selected').attr('value')).show();
    });
});

$(document).ready(function(){
    $("input[name='emailquest']").change(function(){
    if (this.value != "1") { // <----I would probably change this to look for this.checked
        $("input[name='email']").prop("disabled", true);
    } else {
        $("input[name='email']").prop("disabled", false);
    }
    });
});                     
$(function(){
    $("#datepicker").datepicker();
});

次のように記述できます。

$(function() {
    //  your first block of code
    $('#dealerform').hide();
    $('#customerform').hide();
    $('#select').change(function(){
        $('#dealerform,#customerform').hide();
        $($(this).find('option:selected').attr('value')).show();
    });

    // your second block of code
    $("input[name='emailquest']").change(function(){
        if (this.value != "1") { // <----I would probably change this to look for this.checked
            $("input[name='email']").prop("disabled", true);
        }
        else {
            $("input[name='email']").prop("disabled", false);
        }
    });

    // that last piece
    $("#datepicker").datepicker();
})

jQuery と jQueryUI (datepicker は jQueryUI からのもの) の両方を使用している場合は、次のように両方のライブラリを参照する必要があることに注意してください。

<html>
    <head>
        <link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/smoothness/jquery-ui.min.css" type="text/css" media="all" />

        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
        <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>

        <script type="text/javascript">
            $(function() {
                //  your first block of code
                $('#dealerform').hide();
                $('#customerform').hide();
                $('#select').change(function(){
                    $('#dealerform,#customerform').hide();
                    $($(this).find('option:selected').attr('value')).show();
                });

                // your second block of code
                $("input[name='emailquest']").change(function(){
                    if (this.value != "1") { // <----I would probably change this to look for this.checked
                        $("input[name='email']").prop("disabled", true);
                    }
                    else {
                        $("input[name='email']").prop("disabled", false);
                    }
                });

                // that last piece
                $("#datepicker").datepicker();
            })
        </script>
    </head>
于 2013-08-23T16:03:33.023 に答える
0
$(function() {
    $("#datepicker").datepicker();

    $('#dealerform').hide();
    $('#customerform').hide();
    $('#select').change(function(){
        $('#dealerform,#customerform').hide();
        $($(this).find('option:selected').attr('value')).show();
    });

    $("input[name='emailquest']").change(function(){
    if (this.value != "1") { // <----I would probably change this to look for this.checked
        $("input[name='email']").prop("disabled", true);
    } else {
        $("input[name='email']").prop("disabled", false);
    }
    });
});
于 2013-08-23T16:04:42.740 に答える