Как реализовать встроенное редактирование jqgrid и пользовательскую проверку?Jquery

Программирование на jquery
Ответить
Anonymous
 Как реализовать встроенное редактирование jqgrid и пользовательскую проверку?

Сообщение Anonymous »

Я новичок в jqGrid и пытаюсь реализовать следующие сценарии, но не могу сделать это правильно.

Это мои сценарии:
  • У меня есть три строки, такие как личный адрес электронной почты, номер мобильного телефона и URL-адрес Twitter. Он должен иметь другой тип данных столбца, возможно, такие значения, как электронная почта, телефон и URL-адрес.
  • Теперь в каждую из строк я буду вводить значение для необходимости выполнения некоторой
    проверки, например формата электронной почты или формата телефона.
  • Когда я нажимаю кнопку «Добавить», необходимо создать новую строку и запросить у меня информацию для
    каждого столбца, например имя столбца и тип данных.
  • Когда я ввожу значение каждой строки необходимо выполнить проверку на основе
    столбца типа данных.
  • Если я нажму кнопку «Изменить», вся сетка должна быть доступна для редактирования и
    необходимо выполнить проверку для каждой ячейки после триггеров событий редактирования.
Мой код:

$(document).ready(function () {
//debugger;
var val;
var lastsel2;
jQuery("#list").jqGrid({
datatype: "local",
height: 250,
width: 770,
colNames: ['Mechanism', 'Data Type', 'Value', 'Active Flag', 'Created'],
colModel: [
{ name: 'Mechanism', index: 'Mechanism', width: 175, editable: true },
{ name: 'DataType', index: 'Datatype', width: 175, editable: true },
{ name: 'Value', index: 'Value', width: 105, editable: true, editrules: { custom: true, custom_func: validate} },
{name: 'ActiveFlag', width: 112, formatter: "checkbox", formatoptions: { disabled: false }, editable: true, edittype: "checkbox" },
{ name: 'Created', index: 'Created', width: 124}]
});
$('#save').live('click', function () {
var ids = $("#list").jqGrid('getDataIDs');
for (var i = 0; i < ids.length; i++) {
var val = $("#list").jqGrid('getCell', ids, 'Value');
var dataType = $("#list").jqGrid('getCell', ids, 'DataType');
$('#colValue').html(val + dataType);
var va = $('#colValue').find('input[name=value]').val();
var daT = $('#colValue').find('input[name=Datatype]').attr('value');

switch (daT) {
case "Phone":
if (!$.jgrid.isEmpty(va)) {

}
else
alert("Phone Number Field is required");
break;
case "Email":
if (!$.jgrid.isEmpty(va)) {

}
else
alert("Email Field is required");
break;
case "URL":
if (!$.jgrid.isEmpty(va)) {
}
else
alert("URL Field is required")
break;
case "":
alert("Fields are not null")
}
}
});

$('input[value=Edit]').click(function () {
var ids = $('#list').jqGrid('getDataIDs');
for (var i = 0; i < ids.length; i++) {
//$('#list').jqGrid('editRow', ids);
jQuery('#list').jqGrid('editRow', ids, true);
}
});
var data = [{ Mechanism: "Mobile Phone", DataType: "Phone" }, { Mechanism: "Personal Email", DataType: "Email" }, { Mechanism: "Facebook URL", DataType: "URL"}];
for (var i = 0; i

Подробнее здесь: https://stackoverflow.com/questions/139 ... validation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»