0

我在选择框中有以下代码,其中三个选项应该动态启用/禁用输入字段/文本区域/选择中的属性“禁用”,但代码根本不起作用:

 $(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 正在工作。

但是:我有一个 PHP 验证,它没有通过 jQuery 禁用的字段。为什么?

否则,我不想通过 jquery 添加/删除动态隐藏字段,因为当用户收到邮件时,他会看到隐藏字段值,这些值不是“真实”值,而是像“some1”这样的值, “some2”电子抄送。

如何避免这种情况并使用禁用字段而不是通过 php 验证?

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 回答