2012-04-23 2 views
4

В Jqgrid применении необходимый атрибут для любого заданного поля как этотПрименить Jqgrid необходимый атрибут динамически

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

Как бы я идти об этом динамически? Я хотел бы сделать поле обязательным, на основе другого поля (например, выбранное значение выпадающего списка/combobox)

Я знаю, где разместить код, например, событие выбора выпадающего списка. Но не как применить требуемый атрибут любым другим способом, кроме кода, который я поставил.

ответ

5

Я предлагаю вам использовать какое-либо событие для мониторинга изменений в элементе управления select и изменения значения required опции editrules ,

Например, в the demo я использовал «focusout» события на выборе контроля колонки «» ship_via изменить required вариант editrules колонны «записка». Я использовал событие «focusout», потому что код использовал исправление ошибок, которое я предложил here. Вы можете использовать другие события в качестве альтернативы, но вы должны тестировать их в разных браузерах.

код, который я использовал в демо является

{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' } 
Смежные вопросы