我在我的应用程序中使用js autocompleter标记。我的问题是,当我想在标签中使用onchange()
函数时,它不起作用。 onchange()
函数未触发。我该如何解决这个问题?
我的JSP
<script type="text/javascript">
function change_origin_state() {
alert("in autocompleter onchange");
return true;
}
</script>
<s:autocompleter list="al_state_nm"
name="orgState"
listValue="state_nm"
listKey="state_cd"
cssStyle="width:180px;height:20px"
onchange="return change_origin_state();"
/>
答案 0 :(得分:1)
使用autocompleter标记时请不要使用onchange属性。更好的方法是使用autocompleter topics代替。它们包装来自jQuery Ui autocompleter event的事件。
您可以在Struts2 jQuery Showcase中找到一些示例,如下所示,如何使用此主题。
JavaScript代码:
$.subscribe('autocompleteChange', function(event, data) {
var ui = event.originalEvent.ui;
var message = ui.item.value;
if(ui.item.key) {
message = '( '+ ui.item.key +' ) '+message;
}
$('#topics').html('<b>'+message+'</b>');
});
$.subscribe('autocompleteFocus', function(event, data) {
var ui = event.originalEvent.ui;
var message = ui.item.value;
if(ui.item.key) {
message = '( '+ ui.item.key +' ) '+message;
}
$('#topics').html('<u>'+message+'</u>');
});
$.subscribe('autocompleteSelect', function(event, data) {
var ui = event.originalEvent.ui;
var message = ui.item.value;
if(ui.item.key) {
message = '( '+ ui.item.key +' ) '+message;
}
$('#topics').html('<i>'+message+'</i>');
});
JSP中的代码:
<div id="topics" class="result ui-widget-content ui-corner-all"></div>
<s:url id="jsonlanguages" action="jsonlanguages"/>
<sj:autocompleter
id="languages"
name="echo"
label="Handle a Array"
href="%{jsonlanguages}"
delay="50"
loadMinimumCount="2"
onChangeTopics="autocompleteChange"
onFocusTopics="autocompleteFocus"
onSelectTopics="autocompleteSelect"
/>