I have set the Struts 2 jquery auto complete tag forceValidOption
to false as:
<sj:autocompleter list="destinationAccounts" id="sample"
listKey="accountNo" name="toAccount"
listValue="%{accountNo + \" \" + firstName + \" \" + lastName }"
forceValidOption="false"/>
The forceValidOption
is not working and it forces the user to select from options and will auto-clean user entered data, when user leaves input.
The generated javascript is as:
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);
It shows that the forceValidOption
is set.
Should I set other options to make it work?!
I have test it in the showcase and still I could not make it work.
If there is a bug here, can I use jQuery autocomplete function directly and disable this feature ?!
The <sj:autocompleter>
without href
attribute is used to load a static list.
If it's used with selectBox="true"
, it renders select
tag to hold its options and two input fields: one is a hidden field which value is submitted, and another is a combobox. The value from this field should be set to a hidden field.
To make it work you should set the following function
$(".s2j-combobox-input.ui-autocomplete-input").keyup(function(e){
$("#sample").val($(".s2j-combobox-input.ui-autocomplete-input").val())
});