Member 12970966 Ответов: 1

Невозможно сохранить div отключенным при определенном условии


Я пытаюсь включить div регистрации отправки, действующий как кнопка, когда пользователь не зарегистрирован, но включить кнопку редактирования (div) и отключить кнопку регистрации отправки, когда пользователь зарегистрирован.

Вот мой взгляд на бритву:
<div class="contribution-list-results outer-box row">
    @{
        for (var i = 0; i < Model.ManageUsersVMList.Results.Count; i++)

        {

            <div class="col-xs-12 users-maintenance-list-results">
                <div class="checkbox-col detail-form-group checkout-form-group checkout-checkbox detail-line-item-checkboxes"

                     data-user="@Model.ManageUsersVMList.Results[i].UserKey",

                     data-is-registered="@Model.ManageUsersVMList.Results[i].Login">
                    @Html.CheckBoxFor(m => m.ManageUsersVMList.Results.SingleOrDefault(x => x.UserKey == Model.ManageUsersVMList.Results[i].UserKey).ManageUsersListItemCheckbox, new
               {
                   id = string.Format("ManageUsersListItemCheckbox{0}", i),
                   data_is_registered = Model.ManageUsersVMList.Results[i].Login
               })
                    <label for="@(string.Format("ManageUsersListItemCheckbox{0}", i))"><div></div></label>
                </div>
                <div class="user-key-col-label hidden-md hidden-lg">@Model.UserKeyLabel: </div>
                <div class="user-key-col admin-line-item">
                    @Model.ManageUsersVMList.Results[i].UserKey
                </div>
                <div class="fpid-col-label hidden-md hidden-lg">@Model.FPIDLabel:</div>
                <div class="fpid-col admin-line-item">
                    @Model.ManageUsersVMList.Results[i].FPID
                </div>

                <div class="full-name-col-label hidden-md hidden-lg">@Model.NameLabel:</div>
                <div class="full-name-col admin-line-item">
                    @Model.ManageUsersVMList.Results[i].Name
                </div>

                <div class="@(Model.IsPortraitExcluded ? "portrait-col-excluded-label" : "email-col-label") hidden-md hidden-lg">@Model.EmailLabel:</div>
                <div class="@(Model.IsPortraitExcluded ? "portrait-col-excluded" : "email-col") admin-line-item">
                    @Model.ManageUsersVMList.Results[i].Email
                </div>

                <div class="login-col-label hidden-md hidden-lg">@Model.LoginLabel:</div>
                <div class="login-col admin-line-item @(Model.ManageUsersVMList.Results[i].Login ? "true-checkmark" : "red-x")"></div>

                <div class="hidden-md hidden-lg @(Model.IsPortraitExcluded ? "portrait-col-excluded-role-label" : "role-col-label")">@Model.RoleLabel:</div>
                <div class="admin-line-item @(Model.IsPortraitExcluded ? "portrait-col-excluded-role" : "role-col") @(Model.ManageUsersVMList.Results[i].Role ? "true-checkmark" : "red-x")"></div>
                @*@if (!Model.IsPortraitExcluded)
                {
                    <div class="portrait-col-label hidden-md hidden-lg">@Model.PortraitLabel:</div>
                    <div class="portrait-col admin-line-item @((Model.ManageUsersVMList.Results[i].Portrait) ? "true-checkmark" : "red-x")"></div>
                }*@
            </div>
        }
        <div class="bottom-buttons col-xs-12">
            <div class="manage-users-registration resend-registration-button-disabled">
                @Html.HiddenFor(x => x.RegistrationUrl)
                <label>@Model.ManageUsersRegistrationLabel</label>
            </div>           
            <div class="manage-users-edit edit-button-disabled">
                @Html.HiddenFor(x => x.EditUrl)
                <label>@Model.ManageUsersEditLabel</label>
            </div>
        </div>

    }
</div>


Что я уже пробовал:

Вот моя функция JavaScript, которая управляет кнопками:

function IsSendRegistrationOrEdit() {
        var numberOfCheckedBoxes = 0;
        $('#ManageUsers .detail-line-item-checkboxes input[type=checkbox]').each(function () {
            if ($(this).is(':checked'))
                numberOfCheckedBoxes++;
        });

        var adminMergeButton = $('.admin-merge-button');

        if (numberOfCheckedBoxes >= 2) {
            adminMergeButton.removeClass('admin-button-disabled');
            adminMergeButton.addClass('blue-border-submit-button background-hover-transition');
        }

        else {
            adminMergeButton.removeClass('blue-border-submit-button background-hover-transition');
            adminMergeButton.addClass('admin-button-disabled');
        }
        var manageUsersEdit = $('.manage-users-edit');
        var CheckBoxes = document.getElementsByTagName('input[type=checkbox]');
        var userLogged = CheckBoxes.data('is-registered') === 'True';
        var resendEmail = $('.manage-users-registration');

        if (numberOfCheckedBoxes === 1) {
            manageUsersEdit.removeClass('edit-button-disabled');
            manageUsersEdit.addClass('blue-border-submit-button background-hover-transition');            

            if ((checkBoxInput.is(':checked')) && (!userLogged))
            {                
                resendEmail.removeClass('resend-registration-button-disabled');
                resendEmail.addClass('blue-border-submit-button background-hover-transition');

            }
            else {
                resendEmail.removeClass('blue-border-submit-button background-hover-transition');
                resendEmail.addClass('resend-registration-button-disabled');

            }
        }
        else {
            manageUsersEdit.removeClass('blue-border-submit-button background-hover-transition');
            manageUsersEdit.addClass('edit-button-disabled');
        }
    };

Пожалуйста, помогите мне. Заранее благодарю вас за потраченное время!

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Итак, какой блок кода не работает? Можете ли вы указать?

Member 12970966

Вот фрагмент кода, который не работает:

if (numberOfCheckedBoxes = = = 1) {
manageUsersEdit.редактировать-кнопка-инвалидов removeClass ('');
manageUsersEdit.добавление('синий-границы-отправить-кнопка фон-Ховер-перехода);

если ((checkBoxInput.это(':проверено')) &&усилителя; (!userLogged))
{
resendEmail.повторно-оформление-кнопки-инвалидов removeClass ('');
resendEmail.добавление('синий-границы-отправить-кнопка фон-Ховер-перехода);

}
ещё {
resendEmail.removeClass('синий-границы-отправить-кнопка фон-Ховер-перехода);
resendEmail.повторно-оформление-кнопки-инвалидов добавление ('');

}
}
ещё {
manageUsersEdit.removeClass('синий-границы-отправить-кнопка фон-Ховер-перехода);
manageUsersEdit.редактировать-кнопка-инвалидов добавление ('');
}

1 Ответов

Рейтинг:
1

Peter Leow

Возможно, вы захотите еще раз взглянуть на свой текущий дизайн, ИМХО, это проблемы:
1. Почему вы хотите дать пользователю, который зарегистрировался на странице регистрации? Вы можете просто предоставить зарегистрированным пользователям другую страницу для обновления их профилей.
2. зачем отключать элементы управления, например кнопки, если они не должны использоваться определенными пользователями? Разве вы не можете сделать их в первую очередь?
3.для пользовательских страниц они должны быть составлены на стороне сервера, а не на стороне клиента, то есть не с помощью JavaScript, по очевидной причине доступности исходного кода.


Member 12970966

К сожалению, я не могу контролировать ни одно из этих предложений, так как это приложение построено на определенных требованиях, и у меня нет полномочий предлагать что-либо, даже если я с чем-то не согласен. Зарегистрированные и незарегистрированные пользователи не имеют доступа к этой странице. Только администратор может отправлять или повторно отправлять регистрацию пользователям.