2013-03-22 54 views
0

我有下面的代码在选择框中应该动态地启用/禁用输入字段/ textarea/select中的属性“禁用”,但代码根本不起作用:使用jQuery禁用/启用动态输入/ textarea/select字段

$(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禁用的fiedls。为什么?

否则,我不想通过jquery添加/删除动态隐藏字段,因为当用户收到邮件时,他会看到隐藏的字段值,它们不是“真正”的值,但值“some1”,“some2”ecc。

如何避免这种情况,并使用diasabled领域,而不是通过PHP验证?

+0

.attr('disabled',true) – Matheus 2013-03-22 16:19:40

回答

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); 
     };  
    }); 
}); 

演示:Fiddle

1

更改$( “本:选择”)。VAL()为$(本).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); 
     } 
    }); 
});