【问题标题】:Calling a java-script function when value of a Dojo auto-completer changes当 Dojo 自动完成器的值改变时调用 java-script 函数
【发布时间】:2011-09-27 06:38:48
【问题描述】:

当 Dojo 自动完成器的值发生变化时,我正在尝试调用 javascript 函数。

从“onChange”属性调用javascript函数没有效果(我的意思是该函数没有被调用/执行)。

在我想要的javascript函数中:

  1. 调用 struts2 动作。

  2. 更改隐藏字段的值。

为了调用动作,我有另一种方式:
使用属性“valueNotifyTopic="topicName"”发布主题,然后我可以通过监听主题来调用操作。

但是我不能通过这种方式改变隐藏字段的值。所以我需要调用一个javascript函数

请指教

谢谢!!

编辑:

这是jsp中的代码:

<s:url id="scriptURL" action="viewContactInfo" />
<sd:div href="%{scriptURL}" listenTopics="viewContactInfo" formId="contactInfo" showLoadingText="false" preload="false">
<s:form id="contactInfo">
    <sd:autocompleter autoComplete="false" name="customer" list="customerList" valueNotifyTopics="viewContactInfo"/> 
    <sd:autocompleter autoComplete="false" name="contact"  list="contactList"  valueNotifyTopics="viewContactInfo"/>
    <s:hidden id="chngd" value="initial"/>
</s:form>
</sd:div>

如果我将“valueNotifyTopics='viewContactInfo'”更改为“onChange='dojo.event.topic.publish('viewContactInfo');'”,则操作“viewContactInfo”将停止调用。而同样的事情(“onChange”)与其他元素一起工作(在我项目的其他地方)。

【问题讨论】:

  • 作为一个想法,我认为这可能会发生,因为 dojo 自动完成器不是 html 元素,并且 onChange 事件处理程序仅适用于 html 元素。你觉得呢?
  • 使用主题是正确的方法,至于为什么它不起作用,很难用给定的东西说 - 你可以通过主题方法更改隐藏的值。
  • 请发布您用于创建您遇到问题的 dojo 小部件的代码。
  • @BuffaloBuffalo 代码被包裹在 S2 自定义标签中,很有可能主题“订阅”或处理程序本身不正确。
  • 请查看代码的编辑和进一步的描述。

标签: javascript autocomplete dojo struts2


【解决方案1】:

我已经为这个问题启动了另一个线程。

我想出了解决方案并在此处发布了答案:

Cannot find a way to pass a hidden value to the action file

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-21
    相关资源
    最近更新 更多