我已将Struts 2 jquery自动完成标记forceValidOption
设置为false,如下所示:
<sj:autocompleter list="destinationAccounts" id="sample"
listKey="accountNo" name="toAccount"
listValue="%{accountNo + \" \" + firstName + \" \" + lastName }"
forceValidOption="false"/>
forceValidOption
不起作用,它强制用户从选项中进行选择,并在用户离开输入时自动清理用户输入的数据。
生成的javascript为:
var options_sample_widget = {};
options_sample_widget.hiddenid = "sample";
options_sample_widget.selectBox = true;
options_sample_widget.forceValidOption = false;
options_sample_widget.jqueryaction = "autocompleter";
options_sample_widget.id = "sample_widget";
options_sample_widget.name = "toAccount.accountNo_widget";
options_sample_widget.href = "#";
options_sample_widget.formids = "ownToOtherForm";
jQuery.struts2_jquery_ui.bind(jQuery('#sample_widget'),options_sample_widget);
它显示forceValidOption
已设置。
我应该设置其他选项才能使其正常工作吗?!
我在展示中对它进行了测试,但仍然无法使其正常工作。
如果此处有错误,我可以直接使用jQuery自动完成功能并禁用此功能吗?!
答案 0 :(得分:2)
没有href
属性的自动完成程序用于加载静态列表。
如果它与selectBox="true"
一起使用,则会呈现select
标记以保存其选项和两个输入字段:一个是提交值的隐藏字段,另一个是组合框。此字段的值应设置为隐藏字段。
要使其工作,您应该设置以下功能
$(".s2j-combobox-input.ui-autocomplete-input").keyup(function(e){
$("#sample").val($(".s2j-combobox-input.ui-autocomplete-input").val())
});