0

div.validation-summary-errors内部にエラーがあるかどうかに基づいて非表示および表示しようとしている次のコードがあります

$('div.validation-summary-errors').each(function (index, element) {
    if ( ????? ) {
        $(element).parent().css({ "visibility": "visible" });
    }
    else {
        $(element).parent().css({ "visibility": "hidden" });
    }
});

マークアップは次のようになります。liこれは、内部にエラーがなく、内部にエラーがないため、非表示にする必要がある場合です。display: none

<div class="validation-summary-errors">
   <ul>
      <li style="display:none"></li>
   </ul>
</div>
4

3 に答える 3

1
var errorEls=$('.validation-summary-errors');

errorEls.filter(':has(li:empty').show().end().filter(':not(:has(li:empty))').hide()

display:none示されているようにインライン css がある場合は、表示されcss visibilityません。

show()そしてhide()変わるdisplay

于 2012-12-24T02:39:52.513 に答える
1
if($(this).find('li').text().length){
    //there's an error
}else{
    //there is no error
}
于 2012-12-24T02:34:09.773 に答える
1

このようなことを試してください。例のようにそれ自体ではなく、リスト項目を反復するul必要があります。

$('div.validation-summary-errors li').each(function (index, element) {
    var $el = $(element);
    if ($el.text().length > 0) {
        $el.parent().css({ "visibility": "visible" });
    }
});​
于 2012-12-24T02:35:21.597 に答える