невозможно получить доступ к кнопке asp от переднего конца после того, как она используется на заднем конце - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть форма, созданная из множества элементов div, которая будет отображать текущую форму и скрывать другие, когда я нажимаю кнопку «Далее» - это сборка с использованием jQuery.

Теперь мне нужно что-то проверить на бэкэнде, чтобы при автоответе я получил сообщение об ошибке на этикетке.

Это кнопка:

<asp:Button runat="server" ID="btnNext" CssClass="btn btn-primary pull-right" Text="Next"  OnClientClick="return false;"/>

на бэк-энде это используется так:

If valid Then
            lblError.Text = String.Empty
            btnNext.Enabled = True
        Else
            lblError.Text = txtErr
            btnNext.Enabled = False
        End If

Это скрипт jQuery для кнопки «Далее»:

btnNext.click(function (e) {
        if (divIndex < countDiv) {
            divIndex++;
            $(curDiv).show();
            $(curDiv).siblings().hide(); 
        }
        return false;
    });

Проблема в том, что когда я нажимаю «Далее», ничего не происходит. Если я удалю код btnNext из серверной части, кнопка будет работать как надо.

Есть мысли?

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:

Я также использую telerik для этого проекта. Чтобы изменить кнопку (включить / отключить) без загрузки всей страницы, я использую RadAjaxManager, и btnNext является одним из обновленных элементов управления.

Когда я удаляю btnNext из обновленного элемента управления, форма может работать.

Ответы [ 3 ]

0 голосов
/ 12 ноября 2018

Попробуйте переключить код следующим образом:

If valid Then
        lblError.Text = txtErr
        btnNext.Enabled = False            
    Else
        lblError.Text = String.Empty
        btnNext.Enabled = True
    End If

У меня есть чувство, что проблема заключается в операторе if, который отключает вашу кнопку. Вы также можете попробовать удалить

    btnNext.Disable 

Из кода и посмотрим, что будет.

0 голосов
/ 13 ноября 2018

Мне действительно удается решить эту проблему. Здесь идет.

Поскольку я обновляю кнопку с помощью Telerik RadAjaxManager, мне необходимо заново зарегистрировать скрипт jQuery для кнопки.

https://docs.telerik.com/devtools/aspnet-ajax/controls/ajaxmanager/how-to/executing-custom-javascript-code-after-ajax-update

Итак, я включаю скрипт сразу после использования btnNext в обратном коде.

If blnValid Then
     lblError.Text = String.Empty
     btnNext.Enabled = True
Else
     lblError.Text = txtErr
     btnNext.Enabled = False
End If

ScriptManager.RegisterStartupScript(Page, GetType(Page), "Script", "initFormWizard();", True)
0 голосов
/ 12 ноября 2018

remove OnClientClick = "return false;"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...