2013-10-28 6 views
1

Я хочу проверить перед тем, как показать форму добавления в jqgrid, что переменная myVar имеет значение. Ниже приведен мой код в опции добавления, чтобы проверить, имеет ли значение значение myVar. Если myVar имеет значение null, я не хочу, чтобы открытая форма была добавлена.Проверка jqgrid перед показом формы

}).navGrid('#mypager',{cloneToTop:true, edit:false,add:true,del:false,view:false,search: false,refresh:true}, 
    {}, 
    { 
    beforeShowForm : function (formid) 
    { 
     if(myVar.length==0) 
     { 
      alert("Value can't be blank!"); 
      return[false,"Value can't be blank!"]; 
     } 
    }, 
    recreateForm: true, 
    reloadAfterSubmit:true, 
    closeOnEscape:true, 
    modal:true, 
    jqModal: false, 
    savekey: [true,13], 
    width:550, 
    mtype:'POST', 
    url: 'MyServlet', 
    editData:{action:'ListInsert',myVar: function() {return myVar;}}, 
    afterSubmit: function (response) 
    { 
     var myInfo = '<div class="ui-state-highlight ui-corner-all">'+'<span class="ui-icon ui-icon-info" '+'style="float: left; margin-right:.3em;"></span>'+ response.responseText +'</div>'; 
     $infoTr = $("#TblGrid_" + $.jgrid.jqID(this.id) + ">tbody>tr.tinfo"),$infoTd = $infoTr.children("td.topinfo"); 
     $infoTd.html(myInfo); 
     $infoTr.show(); 
     return [true, "", ""];     
    }, 
    errorTextFormat: function (response) 
    { 
     return '<span class="ui-icon ui-icon-alert" ' +'style="float:left; margin-right:.3em;"></span>' +response.responseText; 
    } 
}, 

Выше кода отображается предупреждение, но по-прежнему отображается форма добавления.
myVar содержит идентификатор из другой сетки, и если myVar не имеет значения, то я не хочу показывать форму добавления.

Заранее спасибо.

+0

Не могли бы вы предоставить больше кода? Было бы легче рассказать, что происходит с вашей формой. – Cammy

+0

@Cammy Я добавил еще код на вопрос. Дайте мне знать, если вам нужна дополнительная информация. – Bhushan

+0

Я не понял, что вы используете фреймворк. Но я проверил документацию и не нашел ничего, что говорит о том, что вы можете прервать показ остальной части формы в «beforeShowForm». Или что он может иметь возвращаемое значение -> return [false, «Значение не может быть пустым!»]; возможно пересмотреть эту строку – Cammy

ответ

1

Нельзя отрицать открытие формы «Добавить/редактировать», возвращая некоторое значение от beforeShowForm. То, что вы можете сделать, это закрыть форму сразу после открытия. Например, вы можете использовать afterShowForm. Код может быть что-то вроде

afterShowForm: function() { 
    var idSelector = $.jgrid.jqID(this.p.id); 
    if(myVar.length==0) { 
     $.jgrid.hideModal("#editmod" + idSelector, {gbox: "#gbox_" + idSelector}); 
     alert("Value can't be blank!"); 
    } 
} 

Смотреть демо here.

+0

еще раз спасибо. Оно работает. – Bhushan

+0

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

Смежные вопросы