2012-01-31 2 views
5

Я могу лучше объяснить это с помощью Raw script.
Как заблокировать/разблокировать HTML-элемент с Jquery при определенных условиях?

<script> 
    $(document).ready(function() { 
     $("Div"). //lock div here 

     var condition=$("#value").val(); 
     if(condition==true){unlock div here} 
     else{do nothing} 
    }); 
</script> 

Есть ли JQuery виджет я должен включить?

Говоря о блокировке/разблокировке, я имею в виду Enable/Disable.

+5

Что вы подразумеваете под блокировкой –

ответ

1
<script> 
    $(document).ready(function() { 
     $("Div").attr('disabled','true'); //lock div here 


     var condition=$("#value").val(); 
     if(condition==true) 
       $("Div").attr('disabled','false');//{unlock div here} 
     else{do nothing} 
    }); 
</script> 
0

Если вы имеете в виду «не показывать», используйте hide(), если у вас есть какие-либо элементы формы в div и вы хотите отключить их, вы должны отключить каждый из них по одному.

4

Не делайте$("#Div").attr('disabled','true');, главная проблема здесь состоит в том, что с 1.6 (или СТГ вокруг этого) сравнение с == true нарушается, если значение атрибута является disabled (см http://jsfiddle.net/2vene/1/ (и включить JQuery -версия)). Вам лучше пойти за is().

Во-вторых div не поддерживает disabled, используйте input. В этом случае ваш код будет выглядеть так:

<script> 
    $(document).ready(function() { 
    $("#controlId").attr('disabled','disabled'); //lock input control here 

    var condition = $("#value").val(); 
    if(condition == true) 
      $("#controlId").removeAttr('disabled');//{unlock input control here} 
    else{do nothing} 
}); 
</script> 

Вы можете проверить jQuery FAQ.

EDIT

При желании вы можете использовать readonly на div для блокировки/разблокировки механизма. Проверьте демо-версию readonly.

Смежные вопросы