Вы можете использовать следующий код, чтобы определить, находится ли код input
tr
в одном и том же дереве:
function check (val){
var el=$('tr').find("[name="+val+"]").parent().parent();
var code= el.attr("code");
if(el.is( "[code~="+code+"]")){
var elements=$('tr').filter(function(){
return $(this).is( "[code~="+code+"]" );
});
console.log(elements.index(el));
}
}
$("input[type='text']").on("input", function() {
if($(this).val().length > 0){
check(($(this).val()));
}
});
[1138 ] Объяснение:
function check (val){
var el=$('tr').find("[name="+val+"]").parent().parent();
var code= el.attr("code");
if(el.is( "[code~="+code+"]")){
var elements=$('tr').filter(function(){
return $(this).is( "[code~="+code+"]" );
});
console.log(elements.index(el));
}
}
используется для определения, было ли введенное значение в том же дереве атрибутов code
. Если это так, отфильтруйте все элементы в этом коде и получите индекс.
$("input[type='text']").on("input", function() {
if($(this).val().length > 0){
check(($(this).val()));
}
});
используется для обнаружения входа на input textbox
. Если есть какой-либо ввод, он запустит функцию выше.
Связанные ресурсы:
.find()
: Получить потомков каждого элемента в текущем наборе совпадающих элементов, отфильтрованных селектором, объектом jQuery или элементом. [1 125] .parent()
: Получить родительский элемент каждого элемента в текущем наборе совпадающих элементов, который может быть отфильтрован по выбору. (Двойной средний родительский родитель ( Дедушка )) .filter()
: Сократить набор соответствующих элементов до тех, которые соответствуют селектору или проходят тест функции . .attr()
: Получить значение атрибута для первого элемента в наборе совпадающих элементов или установить один или несколько атрибутов для каждого сопоставленного элемента. .is()
: проверить текущий сопоставленный набор элементов по объекту селектора, элемента или jQuery и вернуть true
, если хотя бы один из этих элементов соответствует заданному аргументы. .index()
: поиск заданного элемента среди соответствующих элементов. Некоторое время назад я изучал проблему и нашел блог Пола Хастинга и примеры Coldfusion / Java очень полезными:
Не забудьте проверить его Испытательный стенд TZCFC
Как хранить даты, вероятно, будет зависеть от вашей бизнес-логики. В проекте, который я сделал, где нам нужно было реализовать планирование человеческих ресурсов по часовым поясам, мы хранили даты / время в UTC и использовали datediff в базе данных для проверки конфликтов.
РЕДАКТИРОВАТЬ: