2011-04-05 47 views
0

这将是很容易看到使用这个的jsfiddle:动态添加文本框被添加到了错误的表单元素

http://jsfiddle.net/6xPye/4/

我有什么在两个下拉菜单,其值的变化取决于你的第一选择。

即使使用表单提交,这一切都可以正常工作,但是现在我想要做的是为第一个下拉列表中的某些值生成中间下拉菜单和文本框,而不是2个下拉菜单。

我有一点工作,但如果您先选择escherpropname,它会打破之后添加的动态元素。

任何帮助,非常感谢。

感谢,

马丁

回答

1

我想你会想改变你添加一个文本框的方式,这里有一个解决方案

HTML:

<!-- remove textbox --> 
<!--<input type="text" name="valuestextbox[]" class="valuestextbox"/>--> 

jQuery的:

// in document .ready change these lines 
//$valuestextbox = $('.valuestextbox'); *remove* 
//$valuestextbox.hide(); *remove* 
// Create a textbox as needed 
$valuestextbox = $('<input type="text" name="valuestextbox[]" class="valuestextbox"/>'); // *add* 

... 

// in your test for 'escherpropname' 
//$valuestextbox.show(); *remove* 
$values.after($valuestextbox.clone()); // *add* 

更新提琴:http://jsfiddle.net/pxfunc/6xPye/5/

+0

谢谢你,这似乎工作得非常好。我只是完成了工作,所以明天就试一试,接受你的答案。 我还有一个关于如何在我的sql查询中实现文本框的问题,如果它有一个文本框而不是一个下拉列表,但我可以问明天,如果没问题? 谢谢, Martn – martincarlin87 2011-04-05 15:33:00

+0

只是做了更改,我有一个简单的问题是,如果您选择'escherpropname',然后将其更改为'代理',例如,文本框仍然存在,所以我想知道最好的方式,隐藏文本框并显示下拉菜单?通常我会使用'.show()'和'.hide()',但是这行代码会让我退出$ values.after($ valuestextbox.clone());' – martincarlin87 2011-04-06 09:46:33

+0

在您的支票中返回'agent'你可以使用'$(this).parent()。find(“。valuestextbox”)。remove();'并重新显示下拉列表中的$ values.show();'来移除选择文本框。 – MikeM 2011-04-06 13:50:52