2017-01-14 8 views
0

Когда я устанавливаю editrules custom_func и required = false, custom_func работает только в том случае, если пользователь вводит значение. Я имею в виду, что если пользователь оставляет вход пустым, custom_func пропускается jqgrid. В моем случае я хочу проверить, может ли значение поля быть пустым или нет, в зависимости от других пользовательских значений из той же строки. Поэтому я не могу установить require = false в colmodel, так как мне нужно проверить его после отправки.jqgrid editoptions custom_func с обязательным = false

Это псевдо-custom_func, не обращать внимание на его содержание:

colmodel: [ 
    {name:'xxx', editrules: { 
    required:false, 
    custom:true, 
    custom_func: function(value) { 
     if(othercolumn=='blah' && value=='') { 
      //this is error 
     } else { 
      //this is correct 
     } 
    } 
    }} 
] 

EDIT: Я использую jqGrid 4.6.0 (я до сих пор тестирование бесплатно 4.13.6 в отдельной отрасли)

ответ

1

Прежде всего, я думаю, что вы разместили неправильные свойства своего кода. Я предполагаю, что вы используете указать required, custom и custom_func внутри editrules, а не внутри editoptions (см. the documentation).

секунд вы должны всегда включают информацию о версии jqGrid, который вы используете (можно использовать), а также о вилке jqGrid (free jqGrid, коммерческий Guriddo jqGrid JS или старый jqGrid в версии < = 4,7). Возможности разных версий и разных вилок jqGrid: разные.

Чтобы решить вашу проблему, вы должны не указатьrequired свойства в столбце или использовать required: undefiled. Только в случае явным образом использование required: true валидация будет остановлена ​​пустым значением. Если вы укажете явноrequired: false, то custom_func не будет вызываться пустым значением. Любые другие значения, такие как true и false от required, позволят вам выполнить специальную проверку.

Следующая проблема, в которой у вас есть требование доступа к значению другой столбец для пользовательской проверки. Это должно быть частью отдельного вопроса. Важно знать вилку jqGrid, которую вы используете, версию jqGrid и режим редактирования (встроенное редактирование, редактирование формы или редактирование ячейки).

+0

yes is editrules (отредактировано) и jqGrid 4.6.0 Вы правы, у меня есть jqgrid wraper, который заставляет default required = false, если не объявлен. Поэтому я удалял этот атрибут по умолчанию, поэтому я могу использовать custom_func с любым значением. Спасибо! – Aberel

+0

@Aberel: Добро пожаловать! – Oleg

+0

О последней проблеме: «получить значение других входных столбцов», я отправлю новый вопрос. – Aberel