Struts 2 jquery autocompleter with forceValidOption=“false”

qeeaahzv  于 2023-10-17  发布在  jQuery
关注(0)|答案(1)|浏览(111)

我将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已设置。
我是否应该设置其他选项来使其工作?!
我已经在展示柜里测试过了,但我还是不能让它工作。
如果这里有bug,我可以直接使用jQuery自动完成功能并禁用此功能吗?!

7ajki6be

7ajki6be1#

不带href属性的<sj:autocompleter>用于加载静态列表。
如果它与selectBox="true"一起使用,它会呈现select标记来保存其选项和两个输入字段:一个是提交值的隐藏字段,另一个是组合框。此字段中的值应设置为隐藏字段。要使其工作,您应该设置以下函数

$(".s2j-combobox-input.ui-autocomplete-input").keyup(function(e){
  $("#sample").val($(".s2j-combobox-input.ui-autocomplete-input").val())
});

相关问题