2012-01-31 14 views
5

Mogę lepiej wyjaśnić to za pomocą skryptu Raw.
Jak zablokować/odblokować element HTML z Jquery pod pewnymi warunkami?

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

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

Czy jest jakiś widżet jquery, który muszę dołączyć?

Mówiąc "zablokuj/odblokuj" mam na myśli Włącz/Wyłącz.

+5

co masz na myśli przez blokadę –

Odpowiedz

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

Jeśli masz na myśli "nie pokazywać", użyj hide(), jeśli masz elementy formularza w div i chcesz je wszystkie wyłączyć, musisz wyłączyć każdą z nich jedną po drugiej.

4

Nie rób$("#Div").attr('disabled','true');, głównym problemem jest to, że z 1,6 (lub czegoś wokół tego) porównanie z == true jest uszkodzony, jeśli wartość jest disabled atrybuty (patrz http://jsfiddle.net/2vene/1/ (i przełączyć jQuery -wersja)). Powinieneś raczej wybrać się na is().

Po drugie div nie obsługuje disabled, użyj jakiegoś input. W takim przypadku Twój kod będzie wyglądał następująco:

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

Możesz sprawdzić jQuery FAQ.

EDIT

Opcjonalnie można użyć readonly na div aby zablokować/mechanizm odblokowujący. Sprawdź wersję demonstracyjną: readonly.

Powiązane problemy