2013-07-19 6 views
1

Я пытаюсь выяснить, как изменить порядок ul с использованием значения текстового поля.jQuery - Изменить порядок, изменив значение текстового поля

Начните с ul ....

<ul id="ItemList"> 
    <li> <some text> <input id="Text1" type="text" value="1" /></li> 
    <li> <some text> <input id="Text2" type="text" value="2" /></li> 
    <li> <some text> <input id="Text3" type="text" value="3" /></li> 
    <li> <some text> <input id="Text4" type="text" value="4" /></li> 
</ul> 

Тогда, если я меняю значение Text4 из 4 в 2 список будет реорганизовать себя при изменении значения text2 & 3 к 3 & 4 соответственно.

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

Я не нахожу здесь ничего конкретного, но я, возможно, не ищу прав.

+2

И что вы пробовали? –

+0

показать нам какой-нибудь jquery, который вы написали? – Krishna

+0

Итак, вы хотите изменить текст других текстовых полей, если вы измените значение в одном из tb? Кроме того, это статический список или динамический? – Learner

ответ

1

Вот быстрый способ сделать это (без проверки ошибок):

$('input').keyup(function() { 
    var start = $(this).index('input'); 
    var target = $(this).val() - 1; 
    if (target < start) $(this).parent().insertBefore($('li').eq($(this).val() - 1)); 
    if (target > start) $(this).parent().insertAfter($('li').eq($(this).val() - 1)); 
}); 

jsFiddle example

Обратите внимание, что именно вы хотите, чтобы пронумеровать входы после изменения, добавьте эту строку в конец от функции $('input').each(function(){$(this).val($(this).index('input')+1)});

+0

Это хорошо подходит для заказа, но он хочет, чтобы он также обновлял все значения вверх и вниз по цепочке. Для этого потребуется вторая функция (вероятно, лучше всего запустить сразу после первого). Также не работает для копирования/вставки и работает странно с двузначными числами. –

+0

@BenBarden - указывает ли код в примечании моего ответа на вашу озабоченность по поводу обновления? Я не знаю, о чем вы говорите. Что касается копирования/вставки и двухзначных чисел, это все мелкие детали, когда выполняется основной заказ. – j08691

+0

Достаточно честно - кибиц onkeyup - это просто кибиц. Возможно, все будет лучше, чем onchange, а не onkeyup. Кроме этого, да, это в значительной степени покрывает его. Я не тестировал и не могу сказать, работает ли это то, что он пытается сделать, но похоже, что у вас есть все движущиеся части, которые вам нужны. –

Смежные вопросы