2012-03-30 2 views
0

У меня есть страница с макетом, где одна половина страницы является динамической шириной, а другая фиксирована. Это достигается плавающей стороной с фиксированной шириной вправо. Все это отображается нормально, но поскольку разметка с фиксированной шириной происходит до разметки динамической ширины, вытесняет порядок вкладок.Индекс вкладки на плавающих входах

Смотрите здесь: http://jsfiddle.net/BaMqG/

Как я могу преодолеть это, не прибегая к успеху свойства TabIndex на входах?

+1

1. Вы хотите перемещаться по входам подряд или «блокировать»? 2. Можете ли вы поплыть покинуть фиксированную группу? 3. Что случилось с свойством tabindex? – fcalderan

+0

1. Я хочу перемещаться по строке слева направо. 2. Фиксированная группа должна прибыть после динамической группы. 3. Форма может увеличиваться по размеру (больше входов) с помощью javascript, и поэтому отслеживание индекса табуляции станет кошмаром. – CeejeeB

ответ

0

Мне удалось получить ту же самую форму, без указаний вкладки, чтобы работать с использованием таблиц.

Смотрите здесь: http://jsfiddle.net/ymSGM/

я все еще был бы интересно, если это может быть сделано любым другим способом.

+0

Честно говоря, смешивание фиксированных и процентов ширины в вашем макете по своей сути проблематично в html/css. Вам либо нужно написать сценарий для обработки динамического характера вашей формы, либо вообще избежать этой проблемы с помощью таблиц. Для каждого есть плюсы и минусы. Если семантическая разметка менее важна в этом сценарии, чем избегать избыточного javascript, то, вероятно, лучше всего делать ставки. –

0

Вы можете использовать jQuery для динамического задания tabindexes с помощью переменной loop и counter. Проверьте это. http://jsfiddle.net/BaMqG/22/

$(document).ready(function() { 
    var i = 1; 
    $('.wrapper').each(function(){ 
     $(this).children('.dynamic').children('input').each(function(){ 
      $(this).attr("tabindex",i); 
      i++; 
     }); 
     $(this).children('.fixed').children('input').each(function(){ 
      $(this).attr("tabindex",i); 
      i++; 
     }); 
    }); 
});​ 

Начальное значение I может быть установлен на любой TabIndex номер, который вы хотите, чтобы начать с.

+0

Да, я подумал об этом, но эта часть формы находится в середине полной формы, и поэтому, когда я добавляю новую строку формы через js, не только обновление индекса табуляции, но и вся последующая форма. Вот почему я хотел бы получить решение с индексом без вкладок. – CeejeeB

+0

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

+0

Однако, если вы разместите ссылку на свою страницу, я могу посмотреть на альтернативные решения. –

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