Отключение кнопки «Отправить» в приложении ASP.NET 3.5 с JavaScript прерывает отправку BlackBerry - PullRequest
1 голос
/ 13 апреля 2010

Следующий код используется для отключения кнопки «Отправить» после нажатия на нее. Это прекрасно работает в настольных браузерах и в большинстве мобильных браузеров BlackBerry.

Submit.Attributes.Add("onclick", "javascript:this.disabled=true;" +
    ClientScript.GetPostBackEventReference(Submit, null));

К сожалению, при использовании BlackBerry Storm нажатие кнопки отправки приводит к тому, что устройство просто перезагружает страницу. Если я удалю этот код, браузер Storm отправит страницу просто отлично. Мне нужно отключить кнопку, когда браузер способен это сделать, но не хочет влиять на браузеры, которые не поддерживают JavaScript.

Я понимаю, что мог бы добавить инфраструктуру jQuery и прикрепить только клиентскую часть событий, но я пытаюсь найти самое простое исправление (читай наименее навязчивое), поскольку это устаревшее приложение. Есть предложения?

1 Ответ

1 голос
/ 13 апреля 2010

Я считаю, что вы можете сделать это таким образом - я давно этого не делал, а некоторые из HttpCapabilities API были помечены как устаревшие, но в целом вы можете определить, поддерживает ли браузер JavaScript, выполнив это:

    var myBrowserCaps = Request.Browser;
    if (((HttpCapabilitiesBase)myBrowserCaps).EcmaScriptVersion.Major > 1)
    {
        // Browser supports javascript
        Submit.Attributes.Add("onclick", "javascript:this.disabled=true;" +
                    ClientScript.GetPostBackEventReference(Submit, null));
    }
...