这可能是一个愚蠢的问题,但如果它返回错误,我需要在表单上展开切换。提交表单时,它会重新加载页面,因此最初隐藏了slidedown。
在表格中有一个toogle的链接:
<span id="slideDownCreateMail" styleId="createEmail" class="createNewEmailGallery">Expand</span>
HTML看起来像这样:
<div class="showCreateNewEmailAccount" >
<fieldset>
<h3>Enter mail</h3>
<p id="createNewEmailAccount">
<label for="name">Email:</label>
<html:text property="address" styleClass="border" styleId="address" />
</p>
<div><one:error property="address" element="label" /></div>
<p>
<label for="mailPassword1">Password:</label>
<html:password property="mailPassword1" styleClass="border" styleId="mailPassword1" />
</p>
<div><one:error property="mailPassword1" element="label" /></div>
<p>
<label for="mailPassword2">Password (again):</label>
<html:password property="mailPassword2" styleClass="border" styleId="mailPassword2" />
</p>
<div><one:error property="mailPassword2" element="label" /></div>
</fieldset>
</div>
我试图用这样的jQuery来做:
$(document).ready(function(){
$("#slideDownCreateMail").click(function(){
$(".showCreateNewEmailAccount").slideToggle("slow");
/*if (!$(".showCreateNewEmailAccount").hasClass("error")) {
$(".showCreateNewEmailAccount").css('display','block');
}*/
});
$('.showCreateNewEmailAccount label').has('error').css('display', 'block');
});
但上述情况似乎都不起作用。 此标记中返回错误:
<p>
<label for="mailPassword1">Password</label>
<html:password property="mailPassword1" styleClass="border" styleId="mailPassword1" />
</p>
<div><one:error property="mailPassword1" element="label" /></div>
有没有人知道可以做什么? :) 谢谢。
答案 0 :(得分:1)
如果没有看到更多HTML,我只能猜测......
HTML - 如果您可以为标记添加ID
<one:error property="mailPassword1" element="label" styleId="errorLabel" />
jQuery -
$(document).ready(function(){
if ( $('#errorLabel').hasClass('error') ) {
$('#errorLabel').css('display', 'block');
}
});
如果您无法在元素上添加ID,请确保其在.showCreateNewEmailAccount
中的100%然后
编辑 -
$(document).ready(function(){
if ( $('.showCreateNewEmailAccount label').hasClass('error') ) {
$('.showCreateNewEmailAccount').css('display', 'block');
}
});
答案 1 :(得分:1)
你可以这样做:
var $field = $('.showCreateNewEmailAccount');
var hasError = $field.find('label.error').length;
$field.slideToggle(hasError);