我正在使用ZK Framework并且我有一个表单,但问题是当浏览器保存密码时我需要在用户名的文本框中单击并在密码的文本框中单击,当点击是完成页面提交我的表单,但如果我没有点击文本框,当我点击登录按钮就像我的文本框是空的。
然后我需要点击,因为如果我没有在文本框中点击就像我的文本框是空的,
如何在zk中的文本框中或在Java模型中发送单击。或者我如何在文本框中保存浏览器保存的用户名和密码?
谁能帮助我。谢谢
答案 0 :(得分:1)
经过几个小时的努力,尝试了所有的事情,我终于想出了一个有效的解决方案!
这里的主要问题是浏览器在填充用户名和密码时不会触发输入字段的onChange()事件。
ZK依赖它来更新自己组件的值。此外,这也使我们无法确切知道浏览器何时填充了值。
我的解决方法是在您的页面中添加一个反复触发的计时器,并从客户端强制执行ZK的updateChange()例程。
鉴于这个基本情景:
<form>
<textbox id="loginUsername"/>
<textbox id="loginPassword" type="password"/>
<button id="loginButton" type="submit"/>
</form>
这个计时器可以解决问题:
<timer id="timer" delay="500" repeats="true" w:onTimer="zk.Widget.$('$loginUsername').updateChange_();zk.Widget.$('$loginPassword').updateChange_();" />
重要的是要注意w:onTimer属性是客户端属性,并且在最顶层的元素中需要以下声明:
xmlns:w="client"
即使它看起来有点蛮力,如果用户输入他/她的用户名和密码没有负面影响,如果它没有被浏览器填充,并且一旦用户在页面上执行某些操作就可以轻松地停止计时器
答案 1 :(得分:0)
尝试使用原生html标签以及自动完成属性,如下所示:
<zk xmlns:n="native">
<n:form method="post" action="home.zul" autocomplete="on">
username: <n:input type="text" />
password: <n:input type="password" />
<n:input type="submit" value="submit" />
</n:form>
</zk>