2011-12-28 3 views
0

У меня есть форма, которую я создаю, когда вы нажимаете кнопку редактирования в таблице. См. Скрипку здесь: http://jsfiddle.net/UtNaa/42/Форма здания динамически с jquery

Проблема в том, что она не показывает правильную форму. Если это AXIS:

if (cameratype == "AXIS") 

он строит форму с 8 полями, в противном случае она формирует форму с 5 полями. Чтобы лучше увидеть это поведение, перейдите к скрипке и нажмите кнопку «Изменить» первой строки. См. Форму, которую он создает, имеет 5 полей. Теперь нажмите следующую кнопку «Изменить» для следующего типа camerat. Он показывает те же 5 полей, когда он должен отображать 8 полей.

Но если вы обновите свой браузер на этой скрипке и на этот раз нажмите вторую кнопку «Изменить» в таблице, вы увидите, что на ней отображаются 8 полей. Но опять же, если вы нажмете «Изменить» для первой строки, это также 8 вместо 5 полей.

Так что, если вы нажмете cameratype = WEBCAM, он должен отобразить 5 полей, и когда вы нажмете cameratype = AXIS, он должен отобразить 8 полей. Обратите внимание, что между ними есть общие поля. Любые идеи, что я делаю неправильно?

ответ

1

Эта линия:

if (mydiv.find("form").length) { 

дает вам проблемы. По сути, это просто показывает вам ту же форму, которую вы сначала создали. Вам нужно удалить форму на cancel/apply или попытаться определить, доступен ли правильный тип формы и выбрать/показать ее.

Работа Пример использования $.empty(): http://jsfiddle.net/UtNaa/44/

+0

thx для обновления скрипки! – Tom

1

Ваша проблема эта линия:

if (mydiv.find("form").length) { 
    mydiv.show(); 
} 

После первого раза вы нажмете на кнопку «Редактировать», форма заполняется, и динамические элементы управления не являются регенерированный, так как он просто вызывает mydiv.show.

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