2

我已經在Struts 2的jQuery自動完成標籤forceValidOption設置爲false爲:的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被設置。

我應該設置其他選項以使其正常工作嗎?

我已經在展櫃中進行了測試,但仍無法使其工作。

如果這裏有一個bug,我可以直接使用jQuery自動完成功能並禁用此功能嗎?

+1

https://github.com/struts-community-plugins/struts2-jquery/issues/18。 – 2015-01-06 08:20:32

+0

@AleksandrM他打開該錯誤報告:D – 2015-01-07 09:42:12

+0

@AndreaLigios:我已經想通了。 :)在這裏仍然值得一提。 – 2015-01-07 09:44:50

回答

2

沒有href屬性的autocompleter用於加載靜態列表。

如果它與selectBox="true"一起使用,則會呈現select標記來保存其選項和兩個輸入字段:一個是隱藏字段,其值是提交的,另一個是組合框。該字段的值應設置爲隱藏字段。 要使其工作,你應該設置以下功能

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

謝謝@羅曼!所以看起來這個功能不起作用,我們應該使用這個解決方法,直到錯誤修復。 – 2015-01-07 04:22:23

+0

您的代碼只會設置與此輸入關聯的隱藏值。如果您希望輸入顯示用戶值'$(「.s2j-combobox-input.ui-autocomplete-input」)。blur(function(e){(「.s2j-combobox-input.ui-autocomplete輸入「.val($(」#sample「).val()) });'' – 2015-01-28 11:32:48