javascript - queryselector - setattribute



Appliquer dynamiquement l'attribut requis Jqgrid (1)

Je suggère que vous utilisiez un événement pour surveiller les changements dans le contrôle de sélection et changer la valeur de l'option required d' editrules .

Par exemple dans la démo, j'ai utilisé l'événement 'focusout' sur le contrôle select de la colonne 'ship_via' pour changer l'option required de editrules de la colonne 'note'. J'ai utilisé l'événement 'focusout' car le code utilisait le correctif de bogue que j'ai suggéré ici . Vous pouvez alternativement utiliser d'autres événements, mais vous devriez les tester dans différents navigateurs.

Le code que j'ai utilisé dans la démo est

{name: 'ship_via', index: 'ship_via', width: 105, align: 'center', editable: true,
    formatter: 'select', edittype: 'select', editoptions: {
        value: 'FE:FedEx;TN:TNT;IN:Intim',
        defaultValue: 'IN',
        dataEvents: [
            {
                type: 'focusout',
                fn: function (e) {
                    $grid.jqGrid('setColProp', 'note', {
                        editrules: {required: ($(e.target).val() !== "IN")}
                    });
                }
            }
        ]
    },
    stype: 'select', searchoptions: {
        sopt: ['eq', 'ne'],
        value: ':Any;FE:FedEx;TN:TNT;IN:IN'
    } },
{ name: 'note', index: 'note', width: 60, sortable: false, editable: true,
    edittype: 'textarea' }

Dans Jqgrid, vous appliquez un attribut obligatoire à un champ donné comme celui-ci

 { name: 'Comments', index: 'Comments', editable: true, editrules: { required: true }, edittype: 'textarea' }

Comment ferais-je cela de façon dynamique? Je voudrais créer un champ obligatoire, basé sur un autre champ (comme la valeur sélectionnée d'une liste déroulante / liste déroulante)

Je sais où placer le code, par exemple, l'événement select de mon menu déroulant. Mais pas comment appliquer l'attribut requis d'une autre manière que l'échantillon de code que j'ai fourni.





jqgrid-asp.net