J'ai une table jqGrid (qui convertit une table en grille) avec des cases à cocher à sélection multiple. Pour personnaliser le style de case à cocher j'ai utilisé prettyCheckable, qui génère une étiquette et un ancre (href) et un conteneur div pour l'entrée de case à cocher (qui est caché et couvert par l'étiquette et a). Mon problème est que quand je vérifie l'étiquette ne fonctionne pas, à la place quand je vérifie l'entrée fonctionne.
prettyCheckable sur jqGrid ne fonctionne pas
<div class="clearfix prettycheckbox labelright blue " id="aui_11140">
<input role="checkbox" id="rs" class="cbx" type="checkbox" style="display: none;">
<label for="rs" class="checked" id="aui_11139">
</label>
</div>
réglage prettyCheckable pour les entrées:
$("input[type=checkbox]").change(function() {
$(this).triggerHandler("click");
}).prettyCheckable();
Et voici mes paramètres jqGrid:
$(document).ready(function() {
$('#searchForm').ajaxForm(function() {
var _data = $('#searchForm').serialize();
$('#ResultsTable').jqGrid().setGridParam({url: '${searchUrl}' + _data}).trigger("reloadGrid")
return true;
});
jsonTable('ResultsTable', 'ResultsPager', '${searchUrl}', 'searchForm',
{id: 'code'},
['Code', 'Description', 'CF'],
[{name: 'code', index: 'code', width: 55},
{name: 'description', index: 'description', width: 90},
{name: 'CF', index: 'CF', width: 80},
function(id) {
var selRows = $(this).jqGrid('getGridParam', 'selarrrow');
$('#edit').toggle(selRows.length == 1);
$('#delete').toggle(selRows.length > 0);
$('#editForm #code').val(selRows);
$('#deleteForm #code').val(selRows);
},
function(aSel, selected) {
$('#edit').toggle(false);
$('#delete').toggle(selected);
if (selected) {
$('#editForm #code').val(selRows);
$('#deleteForm #code').val(selRows);
}
},
true
)
});
Pourquoi cela ne fonctionne pas?
ps. j'ai édité le prettyCheckable.js et enlevé le <a>
n'est donc pas généré. Et j'ai renommé le CSS de .prettycheckbox a {}
à .prettycheckbox label {}
.
Merci beaucoup! maintenant ça marche bien! mais il y a un autre problème que je n'ai pas expliqué. Changement de style de case à cocher uniquement pour la première entrée. –
@Fuiba: Vous êtes les bienvenus! Désolé, mais je ne comprends pas ce que vous voulez dire sous "la première entrée" et quel style de case à cocher vous voulez dire. Pourriez-vous décrire votre problème plus clairement? Vous n'avez pas inclus le code que vous utilisez pour 'prettyCheckable'. Quelles chechboxs vous changez? Votre shorthort contient uniquement la chechbox dans l'en-tête de colonne de la colonne multi-sélection. Avez-vous un problème avec la case à cocher ou avec une autre case? – Oleg
Je suis désolé si je n'ai pas bien expliqué. Dans l'image ci-dessus, vous pouvez voir la case à cocher classique et la case à cocher personnalisée. De Firebug j'ai enlevé le style 'display: none' à l'entrée et j'ai fait la capture d'écran pour vous le montrer (pour voir l'entrée et l'étiquette). Ceci est la capture d'écran sans modifications de Firebug http://imageshack.us/a/img600/2686/s8v.jpg. Pourquoi la première case à cocher a le style d'image et toutes les autres cases ont un style par défaut même si j'ai utilisé une classe générale pour toutes les cases à cocher?(J'ai édité ma question en ajoutant le code jQuery) –