是否有一种方法在Sitecore WFFM MVC中实现对基于另一个字段的选择有条件要求的字段的自定义验证
-
"DynamicValidationBase":-这是一个属性化验证,该验证应用于字段,该字段可以访问表单详细信息(表单上的其他控件)。
-
"FormCustomValidator":-这永远不会被触发,因为这是一个"MVC表单"。
,
<style>
div{padding:10px 0;}
ul{
list-style:none;
}
</style>
<div>
<label for="Email">Email:</label>
<input type="text" name="Email"/>
</div>
<div>
<label for="Phone">Phone:</label>
<input type="text" name="Phone"/>
</div>
<div>
<label for="IPrefer">I Prefer:</label>
<ul>
<li>
<input type="radio" id="rdo_email" checked="checked" name="rdoPreferType"/>
<label for="rdo_email">Email</label>
</li>
<li>
<input type="radio" id="rdo_phone" name="rdoPreferType"/>
<label for="rdo_phone">Phone</label>
</li>
</ul>
</div>
RequiredIfPopulatedAttribute -首先,需要一个自定义属性来修饰自定义字段。这将从表单向客户端提供必要的数据,以构建验证和验证错误消息。
自定义字段类接下来,创建一个自定义字段,该字段继承所需的字段,但将上面的属性添加到Value属性。
自定义字段视图-向此mvc视图中的表示添加任何自定义。确保模型是上面的自定义类。将此.cshtml文件与其他WFFM视图一起保存。
Javascript添加以下js验证器:$ scw.validator.addMethod ()$ scw.validator.unobtrusive.adapters.add ()
Sitecore更新-在MVC类型字段中创建一个引用自定义类的FieldType。在表单设计器中将这个新的自定义字段类型引用为"类型"字段。表单字段的Parameters字段包含一个值列表,这些值提供自定义字段的属性。
以上是完成此任务的步骤大纲。插图请参见:https://soyouwannasitecore.wordpress.com/2016/10/27/sitecore-wffm-required-if-outlined/