【问题标题】:Disable/ enable dynamically input/ textarea/ select fields with jQuery使用 jQuery 禁用/启用动态输入/文本区域/选择字段
【发布时间】:2013-03-22 16:16:55
【问题描述】:

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

 $(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" ecc。

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

【问题讨论】:

  • .attr('disabled', true)

标签: jquery if-statement input add


【解决方案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);
        };      
    }); 
});

演示:Fiddle

【讨论】:

    【解决方案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);
            }
        });
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-03
      • 2014-05-11
      • 1970-01-01
      • 1970-01-01
      • 2012-05-21
      • 2023-03-18
      • 2012-10-25
      • 1970-01-01
      相关资源
      最近更新 更多