javascript jquery jquery-ui jqgrid jqgrid-asp.net

javascript - Aplicar el atributo requerido Jqgrid dinĂ¡micamente



jquery jquery-ui (1)

En Jqgrid aplicas un atributo requerido a cualquier campo dado como este

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

¿Cómo haría esto dinámicamente? Me gustaría hacer un campo requerido, basado en otro campo (como el valor seleccionado de un menú desplegable / cuadro combinado)

Sé dónde colocar el código, por ejemplo, el evento de selección de mi menú desplegable. Pero no cómo aplicar el atributo requerido de ninguna otra manera que no sea la muestra de código que proporcioné.


Sugiero que use algún evento para supervisar los cambios en el control de selección y cambie el valor de la opción required de reglas de edición .

Por ejemplo, en la demostración utilicé el evento ''focusout'' en el control de selección de la columna ''ship_via'' para cambiar la opción required de reglas de edición de la columna ''nota''. Usé el evento ''focusout'' porque el código usaba la corrección de errores que sugerí aquí . Puede usar otros eventos alternativamente, pero debe probarlos en diferentes navegadores.

El código que utilicé en la demostración es

{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'' }