首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xforms密码确认密码

xforms密码确认密码
EN

Stack Overflow用户
提问于 2011-12-05 08:40:56
回答 1查看 330关注 0票数 4

我有一个典型的密码,用xforms: My instance确认密码布局如下:

代码语言:javascript
复制
<data>
  <password/>
  <newPassword/>
  <confirmPassword/>
</data>

输入是这样的:

代码语言:javascript
复制
 <xf:secret ref="password">
        <xf:label>Old PAssword</xf:label>
   </xf:secret>

   <xf:secret ref="newPassword">
        <xf:label>New Password</xf:label>
   </xf:secret>
   <xf:secret ref="confirmPassword">
        <xf:label>Confirm Password</xf:label>
   </xf:secret>
   <div>
       <xf:submit submission="test">
            <xf:label>Change Password</xf:label>
       </xf:submit>
   </div>

我不知道如何使用confirmPassword验证和匹配newPassword,我只知道使用<xf:bind标记,但我还没有找到如何验证节点之间的相等性。请帮帮我!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-05 21:20:53

您确实可以使用xf:bind来应用约束。只需将以下行添加到您的xf:model中:

代码语言:javascript
复制
<xf:bind nodeset="password" required="true()" constraint=". != ''"/>
<xf:bind nodeset="newPassword" required="true()" constraint=". != ''"/>
<xf:bind nodeset="confirmPassword" required="true()" constraint=". = ../newPassword"/>

这将在所有三个输入字段后面添加必需的标记,确保所有三个字段都已填充,最后两个字段必须相同。您可以通过在newPassword的约束中添加一个带有‘newPassword’的' and‘来添加一个password和密码不能相同的约束。

就我个人而言,我喜欢得到更多的反馈。这些约束只会导致指示器出现在每个字段的后面,而没有任何进一步的信息。如果您在尝试提交信息时能够显示一条消息,那将是最好的。但这涉及到xforms事件处理,我自己没有足够的经验来告诉您如何处理。有一个xforms-submit-event,您也许能够以某种方式捕获它并对其执行操作。但最常见的问题是,一旦提交被点击,在将内容发送到服务器之前,您没有或只有很小的可能性向用户显示反馈。

另一种选择是使用xf:output显示条件消息。如果将incremental="true“属性添加到xf:secret输入,这些属性将在每次击键时刷新。只需在xf:output元素上使用带有choose表达式的value属性。如下所示:

代码语言:javascript
复制
<xf:output value="choose(password = '' or newPassword = '' or confirmPassword = '', 'Please enter current password, new password, and confirmation of new password', '')"/>

<xf:output value="choose(newPassword = '' or newPassword = confirmPassword, '', 'new password, and confirmation do not match!')"/>

如果你愿意,你也可以在它们周围添加一些漂亮的打印。执行动态样式的其他方法是使用xf:group,但我将把它留给您作为练习。

最后,确保在服务器端也检查所有值,以确保没有人作弊。

哈!

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8379816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档