如何在页面中添加新的Dijit小部件?

时间:2013-04-04 23:22:18

标签: javascript jquery widget dojo

我有一个输入数量可变的表单。我正在寻找的行为是有一个链接,用户可以在其中单击并向可填写的表单添加新输入。像这样的东西

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()上绑定输入类型来做到这一点,但这也不起作用! :(

1 个答案:

答案 0 :(得分:2)

通过以编程方式创建Textarea小部件来解决这个问题非常简单(如@Paul Grime所述)。您可以see my example here链接创建的所有textareas都是Dijit小部件。我没有在我的小提琴中使用jQuery,但您需要做的就是将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);
}