いつも大変お世話になっております。
表題の件につきまして、
Wicket AutoCompleteTextFieldをIE11で使用した場合に、不思議な挙動が起こります。
AutoCompelteTextFieldのコンポーネントをAjaxRequestTargetでaddメソッドで更新した場合に、
モデルの値が日本語が含まれる?場合に、AutoCompleteの選択肢が勝手に表示されてしまいます。
モデルの値が数値のみでは再現しませんでした。また、Google Chromeの場合でも再現しませんでした。
また、 com.googlecodeパッケージのAutoCompleteを使用したいです。
以下、環境情報と再現するソースコードを記載させていただきます。
環境
Wicket6.15
Java 7
以下、再現するソースとなります。
Test.java
Java
1package Test; 2 3import java.util.ArrayList; 4import java.util.List; 5 6import org.apache.wicket.ajax.AjaxEventBehavior; 7import org.apache.wicket.ajax.AjaxRequestTarget; 8import org.apache.wicket.markup.html.WebPage; 9import org.apache.wicket.markup.html.form.Form; 10import org.apache.wicket.markup.html.form.TextField; 11import org.apache.wicket.model.CompoundPropertyModel; 12 13import com.googlecode.wicket.jquery.ui.form.autocomplete.AutoCompleteTextField; 14 15public class Test extends WebPage{ 16 17 TextField<String> test; 18 TextField<String> test2; 19 AutoCompleteTextField<String> auto; 20 21 @Override 22 protected void onInitialize() { 23 super.onInitialize(); 24 25 add(new Form<TestFormModel>("form", new CompoundPropertyModel<TestFormModel>(new TestFormModel())){ 26 27 @Override 28 protected void onInitialize() { 29 super.onInitialize(); 30 31 test = new TextField<String>("test"); 32 test.add(new AjaxEventBehavior("onblur") { 33 34 @Override 35 protected void onEvent(AjaxRequestTarget target) { 36 auto.setModelObject("あ"); 37 target.add(auto); 38 } 39 }); 40 test.setOutputMarkupId(true); 41 this.add(test); 42 43 44 test2 = new TextField<String>("test2"); 45 test2.setOutputMarkupId(true); 46 this.add(test2); 47 48 auto = new AutoCompleteTextField<String>("auto") { 49 50 @Override 51 protected List<String> getChoices(String input) { 52 53 List<String> list = new ArrayList<String>(); 54 list.add("あ"); 55 list.add("い"); 56 list.add("う"); 57 list.add("え"); 58 list.add("お"); 59 60 return list; 61 } 62 }; 63 auto.setOutputMarkupId(true); 64 this.add(auto); 65 } 66 67 }); 68 69 } 70}
TestFormModel.java
java
1package Test; 2 3import java.io.Serializable; 4 5public class TestFormModel implements Serializable{ 6 7 private String test; 8 private String test2; 9 private String auto; 10 11 public String getTest() { 12 return test; 13 } 14 public void setTest(String test) { 15 this.test = test; 16 } 17 public String getTest2() { 18 return test2; 19 } 20 public void setTest2(String test2) { 21 this.test2 = test2; 22 } 23 public String getAuto() { 24 return auto; 25 } 26 public void setAuto(String auto) { 27 this.auto = auto; 28 } 29}
Test.html
HTML
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2<html xmlns="http://www.w3.org/1999/xhtml"xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd"> 3 4<head> 5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 6 <meta http-equiv="Content-Language" content="ja" /> 7 <meta http-equiv="X-UA-Compatible" content="IE=Edge"/> 8 <wicket:header-items/> 9 <title>TEST</title> 10 <link rel="stylesheet" type="text/css" href="https://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" media="all"/> 11</head> 12 13<body> 14 <form wicket:id="form"> 15 <input type="text" wicket:id="test" /> 16 <input type="text" wicket:id="test2" /> 17 <input type="text" wicket:id="auto" /> 18 </form> 19</body> 20</html>
皆様のお力添えをよろしくお願いいたします。
あなたの回答
tips
プレビュー