2013-03-22 74 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); 
     } 
    }); 
});