(ZK 7)自动填充无绑定我的数据(MVVM和composer)

(ZK 7)自动填充无绑定我的数据(MVVM和composer),mvvm,data-binding,zk,autofill,Mvvm,Data Binding,Zk,Autofill,我对zk 7有一种错误,它自动填充chrome:( “自动填充”会填充我的网页(文本框)中的字段,但我的视图模型的字段在chrome中保持为空 例如,对于地址表单自动填充,我的viewmodel中的所有数据都为空(而不是网页上的我的文本框中) 如果我模拟一个事件“onChange”,我的绑定工作 (zAu.send(新的zk.Event(zk.Widget.$('idOfMyTextBox'),'onChange',{'value':'test!!','start':6}))) 在具有一个mvv

我对zk 7有一种错误,它自动填充chrome:(

“自动填充”会填充我的网页(文本框)中的字段,但我的视图模型的字段在chrome中保持为空

例如,对于地址表单自动填充,我的viewmodel中的所有数据都为空(而不是网页上的我的文本框中)

如果我模拟一个事件“onChange”,我的绑定工作

(zAu.send(新的zk.Event(zk.Widget.$('idOfMyTextBox'),'onChange',{'value':'test!!','start':6})))

在具有一个mvvm页面的新zk项目中,问题也是一样的

有人有解决办法吗

谢谢你的帮助:)

编辑:一个例子

我写下我的名字并用Chrome自动填充其他字段

结果是:

名称:鸽子 名字:空 地址:空 邮政编码:空 城市:空

祖尔

}


可能是zk.xml上用于强制zk读取dom的配置?

将数据从表单保存到视图模型的最佳方法是将绑定与zul分离 “名字”文本框的示例:

如果你对所有的文本框都这样做,你将节省大量的客户机/服务器通信,我认为这对你的情况是有效的


你好,谢谢你的帮助。我尝试了你的解决方案,但结果是一样的:(
<zk xmlns="http://www.zkoss.org/2005/zul"
xmlns:h="http://www.w3.org/1999/xhtml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.zkoss.org/2005/zul http://www.zkoss.org/2005/zul/zul.xsd">

<window apply="org.zkoss.bind.BindComposer"
    viewModel="@id('vm') @init('com.enriquepigeon.TestZk.MyViewModel')">

    <label value="Name" />
    <textbox value="@bind(vm.nom)" />
    <h:br />

    <label value="First name" />
    <textbox value="@bind(vm.prenom)" />
    <h:br />

    <label value="Address" />
    <textbox value="@bind(vm.adresse)" />
    <h:br />

    <label value="Postal code" />
    <textbox value="@bind(vm.codePostal)" />
    <h:br />

    <label value="City" />
    <textbox value="@bind(vm.ville)" />
    <h:br />

    <button label="launch" onClick="@command('launch')" />

</window>
public class MyViewModel {

private String nom;
private String prenom;
private String ville;
private String adresse;
private String codePostal;

public String getNom() {
    return nom;
}

public void setNom(String nom) {
    this.nom = nom;
}

public String getPrenom() {
    return prenom;
}

public void setPrenom(String prenom) {
    this.prenom = prenom;
}

public String getVille() {
    return ville;
}

public void setVille(String ville) {
    this.ville = ville;
}

public String getAdresse() {
    return adresse;
}

public void setAdresse(String adresse) {
    this.adresse = adresse;
}

public String getCodePostal() {
    return codePostal;
}

public void setCodePostal(String codePostal) {
    this.codePostal = codePostal;
}

@Command
public void launch(){
    System.out.println("Name : "+nom);
    System.out.println("First name : "+prenom);
    System.out.println("Address : "+adresse);
    System.out.println("Postal code : "+codePostal);
    System.out.println("City : "+ville);
}