2011-04-05 29 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