这是我第一次使用jQuery,我迫切需要一些帮助。
我在visualforce页面(Salesforce)上有一个表单,我试图使用jQuery validate插件进行验证。我有一些隐藏的字段,除非用户选择"是"从下拉框中。新字段需要更多详细信息,并且在呈现时应该是必需的。
问题是,当下拉菜单是"是"
时,我不知道如何编写函数以返回true。我试过这个没有成功:
j$('[id$=newDGRecord]').validate();
j$('[id$=InsuranceHistory]').rules("add",{
required: true
});
j$('[id$=insuranceRiskHistory]').rules("add",{
required: function() {
return j$('[id$=InsuranceHistory]').val() == "Yes";
}
});
相关视力标记是:
<div class="form-group required">
<apex:outputLabel value="Insurance History" for="InsuranceHistory" styleClass="control-label col-sm-2" />
<div class="col-sm-10">
<apex:outputText >
<p>Have you, your business, or anyone else named on this form ever had insurance declined, cancelled or refused? </p>
</apex:outputText>
<apex:inputField value="{!Dumping_Grounds__c.Insurance_Declined_or_Cancelled__c}" styleClass="form-control" id="InsuranceHistory" >
<apex:actionSupport event="onchange" rerender="insurancepanel"/>
</apex:inputField>
</div>
</div>
<apex:outputPanel id="insurancepanel">
<apex:outputPanel rendered="{!IF(Dumping_Grounds__c.Insurance_Declined_or_Cancelled__c = 'Yes', true,false)}" id="insuranceRisk">
<apex:outputLabel value="More Details" styleClass="control-label col-sm-2" for="insuranceRiskHistory"/>
<div class="col-sm-10">
<p>Please provide additional details.</p>
<apex:inputField value="{!Dumping_Grounds__c.Insurance_History__c}" styleClass="form-control" id="insuranceRiskHistory"/>
</div>
</apex:outputPanel>
</apex:outputPanel>
有人可以帮我吗?看起来很简单,但我迷路了。
答案 0 :(得分:0)
你正在使用&#34;结束于&#34;选择器,$=
...
j$('[id$=InsuranceHistory]')
因此,您的选择器可能包含多个项目。
但是,使用jQuery Validate插件时,其方法仅应用于组中的 first 项。因此,您需要使用.each()
将该方法应用于所有项目......
j$('[id$=InsuranceHistory]').each(function() {
j$(this).rules("add", {
required: true
});
});
&#34;我不知道在下拉菜单是&#39;&#39;&#34;
时如何编写该功能以返回true
您可以使用the depends
property编写函数。
required: {
depends: function(element) { // element is the object being evaluated
// your conditional
// return true to activate the 'required' rule
}
}
我无法看到您的HTML标记,也不知道为什么您使用&#34;以&#34;结尾?选择一切,所以我不可能构建确切的工作代码。
我也不确定您为什么要使用.rules('add')
方法来声明规则。您的.validate()
方法在哪里?为什么不能使用它?