Я использую jqGrid для обслуживания базы данных, и мне нужно, чтобы определенные поля читались только в диалоговом окне добавления/редактирования формы. Я вижу, что jqGrid поддерживает поля только для чтения в параметрах редактирования, но возможно ли, чтобы некоторые поля ввода были «серыми» только для чтения, чтобы была визуальная подсказка, позволяющая пользователю узнать, что поле доступно только для чтения и не редактируется?
Заранее спасибо.
ОБНОВЛЕНИЕ Спасибо за быстрый ответ, Олег! Я попробовал то, что вы опубликовали, но я получаю много предупреждений о коде в своей среде IDE (Netbeans). Вот мой код:
jQuery("#grid").jqGrid('navGrid','#grid_toppager',
{
add:true,
edit:true,
view:true,
search:false,
del:false,
refresh:true
},
{ // Edit form
width:"auto",
height:"auto",
top:220,
left:500,
viewPagerButtons:false, //disables the arrows to next records
topinfo:"Fields marked with (*) are required",
resize:false,
recreateForm: true,
beforeShowForm: function ($form) {
$form.find(".FormElement[readonly]")
.prop("disabled", true)
.addClass("ui-state-disabled")
.closest(".DataTD")
.prev(".CaptionTD")
.prop("disabled", true)
.addClass("ui-state-disabled")
},
{ // Add form
width:"auto",
height:"auto",
top:220,
left:500,
topinfo:"Fields marked with (*) are required",
resize:false,
reloadAfterSubmit:true,
closeAfterAdd: true
},
{ // prmDel
},
{ // prmSeach
},
{ //prmView
top:220,
left:460
}
); //jQuery("#grid").jqGrid('navGrid','#grid_toppager'
И можно ли изменить серый цвет на более темный оттенок? Мне нужно, чтобы пользователь по-прежнему мог читать его, но видеть и понимать визуальную подсказку о том, что его нельзя редактировать. Большое спасибо Олег

}в конце обратного вызоваbeforeShowForm. Так что у вас просто синтаксическая ошибка. Кроме того, лучше добавить;в конце длинного оператора внутриbeforeShowForm. 10.12.2013ui-state-disabled, определение которого вы можете найти здесь. Он основан наopacity: .35;иfilter:Alpha(Opacity=35);. Вы можете определить свой класс и использовать его вместоui-state-disabledвнутриbeforeShowForm. Вам нужно просто изменить значениеopacity. 10.12.2013How do I get make a readonly field an editable field on the Add form?Сценарий: В форме Редактировать: укажитеunit_id, short_desc, long_descтолько для чтения (серый). В форме Добавить оставьте unit_id редактируемым (для целей добавления), но оставьте short_desc и long_desc только для чтения (серыми). Я нашел этот код:$("#unit_id",formid).attr("readonly","readonly");, но я не могу заставить его работать 11.12.2013beforeInitDataобратный вызов редактирования формы (см. ответ). Другой способ — установить атрибутreadonly(или удалить его) внутриbeforeShowForm(см. ответ). Еще один ответ дает вам советы, как динамически обнаруживать диалоговое окно "Изменить" или "Добавить". Кстати, вы можете установить свойство readOnly или использоватьjQuery.propвместоattr11.12.2013editable: "disabled"вместоeditable: true. 09.09.2015