2013-04-04 72 views
2

我有一個可變數量的輸入表單。我正在尋找的行爲是有一個鏈接,用戶可以點擊並添加一個新的輸入到可填寫的表單。像這樣如何在頁面中添加新的Dijit小部件?

HTML:

<form id="myform"> 
    <input data-dojo-type="dijit.form.Textarea"/> 
    <a href="#" onclick="add_new_input()"> add a new input</a> 
</form> 

JAVASCRIPT:

<script> 
    function add_new_input(){ 
    var newInput = $("<input data-dojo-type='dijit.form.Textarea'/> "); 
    $('#myform').append(newInput); 
    } 
</script> 

這將常規的文本輸入添加到HTML而不是一個小部件的dijit! 你有什麼建議嗎?

我也通過爲輸入文件定義一個類並將輸入類型綁定到($ document).ready()上,但那也不起作用! :(

+0

你可以使用的jsfiddle(或類似)發佈一個例子嗎? – 2013-04-04 23:23:45

+0

對不起,它沒有正確後,我編輯的職位 – Amin 2013-04-04 23:26:32

+1

我m不知道以這種方式添加就足夠了,你可能需要得到dojo來解析這個新的內容(爲了創建dijit引用),或者以編程的方式創建一個dijit - i。 e。'新的Textarea({...},the_id_of_the_new_input「)。 – 2013-04-04 23:29:46

回答

2

這是一個非常簡單的問題,通過以編程方式創建您的Textarea小部件來解決(如@Paul Grime所述)您可以在see my example here中鏈接創建的所有textareas都是Dijit小部件。我的小提琴,但所有你需要做的是改變你的add_new_input功能

function add_new_input(){ 
    var newInput = new Textarea({ 

    // Your custom properties here. 

    }); 
    domConstruct.place(newInput.domNode, "myform"); 

    // Can alternatively place it as so if you don't want to use the 
    // dojo/dom-construct module... 
    // dojo.byId('myform').appendChild(newInput.domNode); 

    // Or with jQuery... 
    // $("myform").append(newInput.domNode); 
} 
相關問題