0

選択ボックスに3つのオプションがあり、入力フィールド/ textarea / selectの属性「disable」を動的に有効/無効にする次のコードがありますが、コードがまったく機能しません。

 $(document).ready(function() {
$('.fieldcontent').not('.info').hide();
$('#selector_cs').change(function() {

      $('.fieldcontent').customFadeOut(100);
      $('.' + $(this).val()).customFadeIn(900);
     // $('input').prop('disabled',false);
    //$('textarea').prop('disabled',false);
    //$('select').prop('disabled',false);
 //option1
 if ($("this:selected").val() === 'help') {
$("textarea[name='message']").prop('disabled',false);
$("input[name='domain']").prop('disabled',false);
}else{
    $("textarea[name='message']").prop('disabled',true);
$("input[name='domain']").prop('disabled',true);
    };
    //option2
     if ($("this:selected").val() === 'info') {
$("textarea[name='message']").prop('disabled',false);

}else{
    $("textarea[name='message']").prop('disabled',true);
};
     //option3
     if ($("this:selected").val() === 'products') {
$("textarea[name='message']").prop('disabled',true);
$("select[name='products']").prop('disabled',false);
$("input[name='domain']").prop('disabled',false);
$("input[name='address']").prop('disabled',false);
$("input[name='state']").prop('disabled',false);
$("input[name='city']").prop('disabled',false);
$("input[name='country']").prop('disabled',false);
};      
});  });

誰かが私がコードを正しく書くのを手伝ってくれる?

助けてくれてありがとう

編集:クイックヘルプを提供してくれた@Kenと@arunに感謝します。これでjQueryが機能しています。

しかし:jQueryによって無効にされたフィールドでは合格しないPHP検証があります。なんで?

それ以外の場合は、jqueryで動的な非表示フィールドを追加/削除したくありません。ユーザーがメールを受信すると、非表示フィールドの値が表示されます。これは「実際の」値ではなく、「some1」のような値です。 「some2」ecc。

これを回避し、php検証に合格する代わりにdiasabledフィールドを使用する方法は?

4

2 に答える 2

2

セレクター$("this:selected").val()が間違ってい$(this).val()ます。選択した値を取得する必要があります

$(document).ready(function() {
    $('.fieldcontent').not('.info').hide();
    $('#selector_cs').change(function() {

        $('.fieldcontent').customFadeOut(100);
        $('.' + $(this).val()).customFadeIn(900);
        // $('input').prop('disabled',false);
        //$('textarea').prop('disabled',false);
        //$('select').prop('disabled',false);
        //option1
        if ($(this).val() === 'help') {
            $("textarea[name='message']").prop('disabled',false);
            $("input[name='domain']").prop('disabled',false);
        }else{
            $("textarea[name='message']").prop('disabled',true);
            $("input[name='domain']").prop('disabled',true);
        };
        //option2
        if ($(this).val() === 'info') {
            $("textarea[name='message']").prop('disabled',false);

        }else{
            $("textarea[name='message']").prop('disabled',true);
        };
        //option3
        if ($(this).val() === 'products') {
            $("textarea[name='message']").prop('disabled',true);
            $("select[name='products']").prop('disabled',false);
            $("input[name='domain']").prop('disabled',false);
            $("input[name='address']").prop('disabled',false);
            $("input[name='state']").prop('disabled',false);
            $("input[name='city']").prop('disabled',false);
            $("input[name='country']").prop('disabled',false);
        };      
    }); 
});

デモ:フィドル

于 2013-03-22T16:24:47.490 に答える
1

$( "this:selected")。val()を$(this).val()に変更すると、問題が修正されます。

$(document).ready(function () {
    $('.fieldcontent').not('.info').hide();

    $('#selector_cs').change(function () {
        $('.fieldcontent').customFadeOut(100);
        $('.' + $(this).val()).customFadeIn(900);

        // $('input').prop('disabled',false);
        //$('textarea').prop('disabled',false);
        //$('select').prop('disabled',false);
        //option1

        if ($(this).val() === 'help') {
            $("textarea[name='message']").prop('disabled', false);
            $("input[name='domain']").prop('disabled', false);
        } else {
            $("textarea[name='message']").prop('disabled', true);
            $("input[name='domain']").prop('disabled', true);
        }

        //option2
        if ($(this).val() === 'info') {
            $("textarea[name='message']").prop('disabled', false);

        } else {
            $("textarea[name='message']").prop('disabled', true);
        }

        //option3
        if ($(this).val() === 'products') {
            $("textarea[name='message']").prop('disabled', true);
            $("select[name='products']").prop('disabled', false);
            $("input[name='domain']").prop('disabled', false);
            $("input[name='address']").prop('disabled', false);
            $("input[name='state']").prop('disabled', false);
            $("input[name='city']").prop('disabled', false);
            $("input[name='country']").prop('disabled', false);
        }
    });
});
于 2013-03-22T16:25:46.470 に答える