2

Я поставил Struts 2 Jquery автозаполнения тег forceValidOption ложь как:Struts 2 JQuery autocompleter с forceValidOption = «ложных»

<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 напрямую и отключить эту функцию?!

+1

https://github.com/struts-community-plugins/struts2-jquery/issues/18. –

+0

@AleksandrM открыл этот отчет об ошибке: D –

+0

@AndreaLigios: Я понял это. :) Еще стоит упомянуть об этом здесь. –

ответ

2

Автозаполнение без атрибута href используется для загрузки статического списка.

Если он используется с selectBox="true", он отображает тэг select, чтобы сохранить его параметры и два поля ввода: один - это скрытое поле, значение которого представлено, а другое - поле со списком. Значение из этого поля должно быть установлено в скрытое поле. Чтобы заставить его работать, вы должны установить следующую функцию

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

Спасибо @Roman! Таким образом, кажется, что эта функция не работает, и мы должны использовать этот обходной путь до исправления ошибок. –

+0

Ваш код будет устанавливать только скрытое значение, связанное с этим вводом. Если вы хотите, чтобы на входе отображалось пользовательское значение '$ (". S2j-combobox-input.ui-autocomplete-input "). Blur (function (e) { $ (". S2j-combobox-input.ui-autocomplete -input ".val ($ (" # sample "). val()) });' –

Смежные вопросы