Ho già provato tutti i modi possibili, ma non sono ancora riuscito a farlo funzionare.
Ho una finestra modale con una checkbox
e voglio che quando la modale si apre, il controllo o la deselezione della checkbox
si basi su un valore del database. (Ho iniziato a provare a spuntarla, ma non ha funzionato.
Il mio html div:
<div id="fModal" class="modal" >
...
<div class="row-form">
<div class="span12">
<span class="top title">Estado</span>
<input type="checkbox" id="estado_cat" class="ibtn">
</div>
</div>
</div>
e il jquery:
$("#estado_cat").prop( "checked", true );
Ho provato anche con attr
, e altri visti qui nel forum, ma nessuno sembra funzionare.
Qualcuno può indicarmi la strada giusta?
EDIT: Ok, mi manca davvero qualcosa qui... Posso controllare/deselezionare usando il codice se la casella è nella pagina, ma se è nella finestra modale, non posso. Ho provato decine di modi diversi...
Ho un link che dovrebbe aprire la modale: <a href='#' data-id='".$row['id_cat']."' class='editButton icon-pencil'>
e jquery per "ascoltare" il click ed eseguire alcune operazioni come riempire alcune caselle di testo con dati provenienti dal database. Tutto funziona come voglio ma il problema è che non posso impostare checkbox spuntata/deselezionata usando il codice. aiuto per favore!
$(function() {
$(".editButton").click(function(){
var id = $(this).data('id');
$.ajax({
type: "POST",
url: "process.php",
dataType:"json",
data: { id: id, op: "edit" },
}).done(function( data ) {
//the next two lines work fine, i.e., it grabs the value from database and fills the textboxes
$("#nome_categoria").val( data['nome_categoria'] );
$("#descricao_categoria").val( data['descricao_categoria'] );
//then I tried to set the checkbox checked (because its unchecked by default) and it does not work
$("#estado_cat").prop("checked", true);
$('#fModal').modal('show');
});
evt.preventDefault();
return false;
});
});
Dal momento che sei in una finestra modale (sia dinamica che nella pagina) puoi usare il seguente codice per raggiungere il tuo obiettivo: (mi sono imbattuto nello stesso problema sul mio sito e questo è come l'ho risolto)
HTML:
<div class="content-container" style="text-align: right;">
<input type="checkbox" id="QueryGroupCopyQueries">
<label for="QueryGroupCopyQueries">Create Copies</label>
</div>
CODICE:
$.each(queriesToAddToGroup, function (index, query) {
if (query.groupAddType === queriesGroupAddType.COPY) {
// USE FIND against your dynamic window and PROP to set the value
// if you are using JQUERY 1.6 or higher.
$(kendoWindow).find("input#QueryGroupCopyQueries").prop("checked", true);
return;
}
Nella "kendoWindow" di cui sopra è la mia finestra (la mia è dinamica, ma lo faccio anche quando aggiungo un elemento direttamente nella pagina). Sto eseguendo un ciclo attraverso un array di dati ("queriesToAddToGroup") per vedere se qualche riga ha un attributo di COPY. Se è così, voglio attivare la casella di controllo all'interno della finestra che imposta quell'attributo quando un utente salva da questa finestra.
Prova questo dato che stai usando jQuery UI probabilmente (se non è così, per favore commenta)
$("#fModal" ).dialog({
open: function( event, ui ) {
if(//some hidden value check which stores the DB value==expected value for
checking the Checkbox)
$("div.row-form input[type='checkbox']").attr('checked','checked');
}
});