当 Dojo 自动完成器的值发生变化时调用 java 脚本函数

发布于 2024-12-06 23:26:49 字数 1157 浏览 0 评论 0原文

当 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”)可以与其他元素(在我的项目的其他地方)一起使用。

I am trying to call a javascript function when the value of a Dojo auto completer changes.

Calling the javascript function from the "onChange" attribute has no effect (I mean the function is not called/executed).

In the javascript function I want to:

  1. Call a struts2 action.

  2. Change the value of a hidden field.

For calling the action I have another way :
publishing a topic using attribute " valueNotifyTopic="topicName" ", then I can call an action by listening to the topic.

But I cant change the value of the hidden field through this way. So I need to call a javascript function

Please advise

Thanks!!

Edit:

This is the code in the 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>

Here if I change "valueNotifyTopics='viewContactInfo'" to "onChange='dojo.event.topic.publish('viewContactInfo');'" the action "viewContactInfo" stops getting called. Whereas the same thing (the "onChange" one) works with other elements (in other places in my project).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

提笔书几行 2024-12-13 23:26:49

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

我找到了解决方案并在这里发布了答案:

无法找到将隐藏值传递给操作文件的方法

希望这有帮助!

I had started another thread for this question.

I figured out the solution and have posted the answer here :

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

Hope this helps!!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文