Я использую 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
вместоattr
11.12.2013editable: "disabled"
вместоeditable: true
. 09.09.2015