简体   繁体   English

使用 javascript 或 jquery 检测 struts2 自动完成标记值的变化

[英]Detect change of value of struts2 autocompleter tag using javascript or jquery

I am working on Struts 2 application.我正在研究 Struts 2 应用程序。 In my application, I need to use Struts 2 autocompleter tag.在我的应用程序中,我需要使用 Struts 2 autocompleter标记。 For that I have used struts2-dojo-plugin-2.3.1.2.jar jar file.为此,我使用了struts2-dojo-plugin-2.3.1.2.jar jar 文件。 I need to fetch the value from autocompleter once the value changes.一旦值发生变化,我需要从自动完成程序中获取值。 I tried using onchange event but it was not working.我尝试使用onchange事件,但它不起作用。 Here is my code:这是我的代码:

<%@taglib uri="/struts-dojo-tags" prefix="sx"%>
<html>
<head>
<script type="text/javascript">
function abc() {
    var a = dojo.widget.byId("country");
    var value1 = a.getSelectedValue();
    document.getElementById("myText").value = value1;
}
</script>
<sx:head />
</head>
<body>
<sx:autocompleter name="country"
id="country" onchange="abc();" list="cricketNations" />
</body>
</html>

How do I achieve this.我如何实现这一目标。 Help me solve this issue.帮我解决这个问题。

The struts2-dojo-plugin is deprecated.不推荐使用struts2-dojo-plugin You need to use struts2-jquery-plugin .您需要使用struts2-jquery-plugin

<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
<html>
  <head>
    <sj:head jqueryui="true"/>
  </head>
  <body>
   <div id="myText" class="result ui-widget-content ui-corner-all"></div>

   <sj:autocompleter name = "country"
                       id = "country" 
           onChangeTopics = "autocompleteChange" 
                     list = "%{cricketNations}" />
   <script>
     $.subscribe('autocompleteChange', function(event, data) {
       var ui = event.originalEvent.ui;
       var message = ui.item.value;
       if (ui.item.key) {
         message = '( '+ ui.item.key +' ) '+message;
       }
       $('#myText').html('&lt;b&gt;'+message+'&lt;/b&gt;');
     });
   </script>

  </body>
</html>

You might not be able to use HTML attributes with dojo widgets, you need to use dojo topics to subscribe for an event:您可能无法将 HTML 属性与 dojo 小部件一起使用,您需要使用dojo 主题来订阅事件:

<%@taglib uri="/struts-dojo-tags" prefix="sx"%>
<html>
<head>
<script type="text/javascript">

    dojo.event.topic.subscribe("/countryName", function(value, key, text, widget){
        alert('inside onchange');

        document.getElementById("myText").value = value;

    });

</script>
<sx:head />
</head>
<body>
<sx:autocompleter name="country" valueNotifyTopics="/countryName"  list="cricketNations" />
</body>
</html>

When value is selected for sx:autocompleter , topics will be published.sx:autocompleter选择值时,将发布主题。 See autocompleter doc here .请参阅此处的autocompleter文档。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 使用JavaScript从Struts2 jQuery自动完成器读取所选值 - Reading selected value from struts2 jquery autocompleter using javascript Struts2 jQuery自动完成器未转义ASCII - Struts2 jQuery Autocompleter Not Escaping ASCII 使用JavaScript更改struts2迭代器内的输入值 - Change value of input inside an struts2 iterator using javascript 使用Struts2标签分配隐藏值 - Assign hidden value using Struts2 tag 如何在Struts2自动完成操作中传递javascript对象? - How to pass javascript object in Struts2 autocompleter action? 如何使用从另一个struts2-jquery自动完成程序Y中选择的值重新加载struts2-jquery自动完成程序X - How to reload the struts2-jquery autocompleter X with value selected from another struts2-jquery autocompleter Y 设定方法 <s:param> 的价值 <s:url> 在struts2中使用javascript动态标记 - How to set <s:param> value of <s:url> tag dynamically using javascript in struts2 使用 Struts2 JQuery 日期选择器标签获取未捕获的 TypeError 错误 - Getting Uncaught TypeError errors using Struts2 JQuery datepicker tag Struts2 Select标签使用javascript添加/删除值 - Struts2 select tag add/remove values using javascript struts2: update second select based on first select value using javascript and jquery - struts2: update second select based on first select value using javascript and jquery
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM