2011-12-28 79 views
0

当我单击表中的编辑按钮时,我已经创建了一个表单。在这里看到小提琴: http://jsfiddle.net/UtNaa/42/使用jquery动态构建表单

问题是它没有显示正确的形式。如果是AXIS:

if (cameratype == "AXIS") 

它用8个字段构建一个表单,否则它将生成一个包含5个字段的表单。要最好地看到这种行为,请转到提琴并单击第一行“编辑”按钮。查看它构建的表单,它有5个字段。现在点击下一个“类型”的“编辑”按钮。它显示相同的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 2011-12-28 19:14:46

1

你的问题是这样的一行:

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

你第一次打的“编辑”按钮后,表单填写,并动态控制不因为它只是调用mydiv.show而重新生成。