javascript - 将 dojo Autocompleter 连接到 javascript 函数

标签 javascript autocomplete event-handling dojo

当 Dojo 自动完成器中的选定值更改时,我试图调用 java 脚本函数,但我无法这样做。

首先是因为标准的 onchange 属性在这里不起作用,因为这不是标准的 HTML 组件。

其次,我找到了这个文档 ( http://dojotoolkit.org/reference-guide/quickstart/events.html#connecting-to-a-dom-event ),它应该可以解决我的问题。但不知何故,我仍然无法连接到 javascript 函数。

这是我尝试测试的示例页面。

JSP:

<s:form id="form">
    <sd:autocompleter id="try" list="sampleList"/>
</s:form>

JS 文件:

dojo.connect(dojo.byId("try"),"onchange", tryAlert);

function tryAlert(){
    alert('successful');
}

我不知道我从文档中解释错了什么。

请指教。

谢谢!!

最佳答案

这是我最后做的。对于那些仍处于类似情况的人,这将有所帮助。

在 jsp 文件中执行此操作:

<s:form id="form">
    <s:hidden id="chngd"/>
    <sd:autocompleter id="try" list="sampleList" valueNotifyTopics="topic"/>
    ///////////
    //Here you can put more autocompleters if you need them , Like I needed them
    ///////////
</s:form>

在js文件中这样做:

dojo.event.topic.subscribe("topic", function(){
    dojo.byId('chngd').value='try';// I have set the value of the hidden field to desired value here....
    //whatever more you want to do....
});

//////////
//Here there would be a subscription (similar to above) for each autocompleter you have put in your jsp.
//////////

所以这里会发生的是,每当自动完成器发生变化时,它都会通知或发布一个主题供听众收听。现在 java 脚本中的 subscribe 函数将监听其各自的“主题”,当该主题发布时,subscribe 将执行其中的 javascript 函数。

这样,无论何时更改自动完成器,都会调用相应的 javascript 函数,因此我们有一种 -- onchange="javascript function" -- 一种效果。

如果您仍然遇到问题,请寻求帮助 :)。

关于javascript - 将 dojo Autocompleter 连接到 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8633732/

相关文章:

javascript - 为什么我的 html 按钮在 I.E 中移动?他们不会在 Chrome 或 FF 中移动

javascript - jQuery:div中两个位置之间有多少个元素

javascript - 如何使用可观察的 RxJs 的响应修改数组中的对象

javascript - jQuery CSS 无法设置顶部位置

php - 如何在 Eclipse 中为 PHP 核心函数启用自动完成/语法高亮?

c++ - IAutoComplete 自定义源与 IEnumString

php - Jquery 自动完成文本字段,动态添加的行中具有数据属性

java - 在java中访问内部类中的变量

python - 根据鼠标按下事件更改图表条的颜色

javascript - 如何通过单击力导向网络中的节点来更新外部条形图