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();