Событие ASP.NET TextBox LostFocus

iPhone SDK НЕ предоставляет Вам прямой доступ для набирания номеров (вообразите, вошла ли 'плохая' программа телефон и набрала плату на мелкое число на бесшумном режиме, таким образом, Вы не заметили).

Однако при использовании ссылки телефона, тогда необходимо быть в состоянии отправить ее"", символы, который вставляет паузы.

Так для набора номера 555-1212 затем ожидайте 4 секунды, затем сделайте 12345# на сенсорном тоне, Вы использовали бы tel:5551212, 12345#

Выезд https://developer.apple.com/library/archive/featuredarticles/iPhoneURLScheme_Reference/PhoneLinks/PhoneLinks.html

5
задан Patrick McDonald 12 July 2010 в 12:22
поделиться

4 ответа

Я нашел блог , который, кажется, дает довольно приличное решение этой проблемы. Он включает добавление настраиваемого события в подкласс TextBox и регистрацию клиентского сценария, который вызывает событие на стороне сервера в клиентском событии onblur JavaScript.

Ниже представлена ​​моя реализация в VB:

Public Class MyTextBox
    Inherits TextBox
    Implements IPostBackEventHandler

    Protected Overrides Sub OnInit(ByVal e As System.EventArgs)
        MyBase.OnInit(e)
        If Not Page.ClientScript.IsClientScriptBlockRegistered("OnBlurTextBoxEvent") Then
            Page.ClientScript.RegisterStartupScript(MyBase.GetType, "OnBlurTextBoxEvent", GetScript, True)
            Attributes.Add("onblur", "OnBlurred('" & UniqueID & "','')")
        End If
    End Sub

    Public Delegate Sub OnBlurDelegate(ByVal sender As Object, ByVal e As EventArgs)

    Public Event Blur As OnBlurDelegate

    Protected Sub OnBlur()
        RaiseEvent Blur(Me, EventArgs.Empty)
    End Sub

    Private Function GetScript() As String
        Return "function OnBlurred(control, arg)" & vbCrLf & _
                "{" & vbCrLf & _
                "    __doPostBack(control, arg);" & vbCrLf & _
                "}"
    End Function

    Public Sub RaisePostBackEvent(ByVal eventArgument As String) Implements System.Web.UI.IPostBackEventHandler.RaisePostBackEvent
        OnBlur()
    End Sub
End Class
3
ответ дан 15 December 2019 в 01:07
поделиться

Что ж, это довольно странный план, но вы можете использовать onblur на стороне клиента для вызова form.submit ();.

0
ответ дан 15 December 2019 в 01:07
поделиться

Почему бы вам не использовать текстовое поле asp со свойством AutoPostBack , установленным в значение true.

<asp:TextBox ID="TextBox1" runat="server" AutoPostBack="True"></asp:TextBox>
-1
ответ дан 15 December 2019 в 01:07
поделиться

Спасибо за это, все работает как надо. Только одну вещь нужно изменить: оберните значение UniqueID, переданное в функцию OnBlurred, в кавычки, чтобы оно использовалось как строка, а не как экземпляр элемента управления. То есть:

Attributes.Add("onblur", "OnBlurred(" & UniqueID & ",'')") 

становится:

Attributes.Add("onblur", "OnBlurred('" & UniqueID & "','')") 
2
ответ дан 15 December 2019 в 01:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: