JQuery: проверка правил данных - PullRequest
0 голосов
/ 23 августа 2010

Сайт .

Этот код не оптимизирован и не является лучшим методом. Если у вас есть идеи по улучшению чего-либо, дайте мне знать.

Пожалуйста, посетите сайт, чтобы получить представление о данных. Я использовал Dan G. Switzer, плагин для вычислений II [добавление .sum () .max () .min () .avg ()]

Требование к валидации, которое я хотел бы иметь, - убедиться, что ничто не противоречит уже определенному диапазону пользователя. Кроме того, в диапазоне нет пробелов.

Например, дать

Brian 40 50 1200
Brian 50 70 1200

Я не хочу, чтобы пользователь мог установить первые 50 на 39, потому что 39 будет меньше 40. Я не хочу, чтобы они позволили 50 установить значение выше 50, потому что это будет перекрывать следующий диапазон.

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

Каждый уникальный вход определяется как id = NAME, поэтому, если бы я хотел сослаться на все входы Брайана, я мог бы использовать $("input[id='Brian']").each() или, если бы я хотел сослаться на все входы START Брайана, я мог бы использовать $("input[id='Brian'][name='start[]'").each()

Edit:

Следует отметить, что страница - это PHP, и PHP запускается для заполнения входных данных через файл CSV. Он всегда будет начинаться с правильных данных, и PHP может использоваться для создания диапазонов.

из-за этого я думал просто отключить поле START, потому что оно всегда будет заполнять следующий диапазон. Однако я добавлю возможность удалять правила, чтобы они могли запутаться, если они ограничены в своих возможностях.

1 Ответ

1 голос
/ 23 августа 2010

Одна из проблем, с которыми я сталкиваюсь, заключается в том, что поля «Имя» доступны для редактирования. Если поле изменилось, все перекрытия должны быть пересчитаны. Это не только проблема производительности, но и проблема юзабилити: что если кто-то хочет изменить имя, а скрипт, видя несоответствия, запрещает это?

Решением будет замена таблицы на таблицу, аналогичную приведенной ниже схеме:

[ Add Employee ]

|    Name    |  Start  |  End  |  Wages  |
==========================================
|            |    0    |   50  |   100   |
|    Brian   |   50    |   70  |   150   |
|            |  100    |  150  |   200   |
|                 [ Add Rule ]           |
------------------------------------------
|   Another  |    0    |  ...  |   etc   |

Кнопка [Добавить сотрудника] запросит имя и добавит ячейку в первом столбце и строку в следующих трех: начальное значение по умолчанию равно 0. Затем пользователь может ввести данные в следующие поля, и можете [Добавить правила], как хотели. Хорошим ограничением может быть блокировка значений столбца «Начало» и установка для них значения «Конец» предыдущей строки.

$('#Brian .LineN input.start').val(
    $('#Brian .LineN').prev().find('input.end').val()
);

Затем добавление функции сравнения для проверки того, что конечное значение меньше начального значения, тривиально для реализации.

Удаление правила может просто следовать той же процедуре, что и при добавлении строки: строка под удаленной (если есть) установит значение начала в качестве конца текущей строки.

Реальная трудность заключалась бы в вставке линий в произвольных точках. Я не собираюсь думать об этом, хотя.

EDIT: Если перезапись невозможна, то достаточно просто отключить запуск. Однако, IMHO, я бы предпочел (пере) написать что-то без предостережений, чем тратить время на многочисленные ошибки и запросы функций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...