Dojo 如何以编程方式单击dijit.form.Button

Dojo 如何以编程方式单击dijit.form.Button,dojo,Dojo,我在里面有表格和输入 <input type="submit" label="Upload" data-dojo-type="dijit.form.Button" data-dojo-attach-point="leftLogoSubmit" id="leftLogoSubmit"/> 但它不起作用 Uncaught TypeError: this.leftLogoSubmit.onclick is not a function 你可以这样写 this.leftLogoS

我在里面有表格和输入

<input type="submit" label="Upload" data-dojo-type="dijit.form.Button" data-dojo-attach-point="leftLogoSubmit" id="leftLogoSubmit"/>
但它不起作用

Uncaught TypeError: this.leftLogoSubmit.onclick is not a function

你可以这样写

    this.leftLogoSubmit.on("click", function() {
// Your code
});

您可以根据需要启动单击功能

this.leftLogoSubmit.onClick();

注意:onClick中的大写字母C。

您需要在.emit()上使用
。
可以通过两种方式完成:

正如@tik27所述:

dijit.registry.byId("leftLogoSubmit").emit('click', { cancelable:true, bubbles: true})
请注意对象上的两个属性。否则,单击将无法正常工作

您还可以执行以下操作:

on.emit(dojo.byId("leftLogoSubmit"), 'click', { cancelable:true, bubbles: true})
其中,
on
作为
dojo/on

最后,您可以直接调用按钮的
onClick
方法(如@frank proposed):

区别在于:
-在第一种情况下,小部件用于访问emit方法(仅适用于事件小部件)
-在第二种情况下,使用了
dojo/on
,因此我们需要传递按钮domNode,而不是小部件

-在第三种情况下,它不是本机单击(因此不会冒泡)。它只需调用按钮点击处理程序

就可以使用核心JavaScript解决方案

document.getElementById("leftLogoSubmit").click(); 

这看起来像是点击处理程序,但我只需要点击输入提交为什么你要按按钮编程我需要提交表单,但如果我以编程方式这样做,然后页面刷新和绘制答案,我需要使用当前页面的答案你是否尝试使用发射。dijit.registry.byId(“leftLogoSubmit”).emit('click',{})奇怪的是,似乎输入被推送了,但表单没有提交。你能解释一下你想用更多的代码做什么吗?你的期望是什么还不清楚。
dijit.registry.byId("leftLogoSubmit").onClick();
document.getElementById("leftLogoSubmit").click();