Ich bin jetzt drei Stunden dabei und komme nicht weiter. Ich habe kein Iphone, also versuche ich das oben genannte auf einem Android-Telefon mit 2.3.
Auf meinem Telefon bekomme ich immer noch die Tastatur jedes Mal, nichts stoppt es und ich kann nicht "nur lesen" verwenden, da es meine asp.net4 / C#-Code hinter Feuern, die ein bisschen cr#p ist, aber das ist, wie es ist.
Meine erste Frage lautet also: Funktionieren diese Ideen nur auf Iphones?
Prost
更新情報
Ich habe einen Weg gefunden, um die oben genannten Antworten für ASP.Net 4 zu machen.
Scheint, dass < asp:TextBox ID="etwas" ...> nicht Javascript oder JQuery auslöst, da es eine "spezielle" ID wie "ctl00_content....." auf der Server-Seite zugewiesen ist, die nicht dasselbe wie "#something" im JQuery-Code ist. Aber dank Versuch und Irrtum mit diesem Beitrag:-
Abrufen von Werten aus asp:textbox mit JQuery
Ich habe herausgefunden, dass die Verwendung der folgenden (mit Dank an obigen Poster) wird der Fokus verwischen und stoppen Handys zeigen die Tastatur (zumindest mein Android sowieso :)
$("#<%=sDatepicker.ClientID%>").focus(function () {
$(this).blur();
});
Der folgende einfache Beispielcode, der mit der oben genannten JQuery verwendet wird, soll anderen hoffentlich helfen:
<asp:TextBox ID="sDatepicker" OnTextChanged="sDatepicker_changed" AutoPostBack="True" ReadOnly="False"></asp:TextBox>
Natürlich ist "sDatepicker_changed" Ihr Code hinter dem Code.
protected void sDatepicker_changed(object sender, EventArgs e)
{//do stuff here..}
Ich kann auch die datepicker Pop-up immer noch und verwenden Sie meinen Code hinter Funktion, um ein anderes Textfeld mit einem Enddatum 7 Tage von diesem ein zu füllen.
Aktualisierung 2
Es scheint, dass dies nur in Mobiltelefonen funktioniert! In einem Browser wird ein "Object reference not set to an instance of an object" ausgelöst, weil asp.net entschieden hat, dass die TextBox nach einem Postback nicht existiert, aber JavaScript ausgeführt wird. Ich komme vom Thema ab und werde nicht mehr sagen.
Update 3 - Meine Antwort
Jetzt ist alles geregelt :) haben meine <script>..</script>
mit einer <Div>
und machen Sie es nur sichtbar, wenn Sie die JavaScript
Code, wenn ich erkannt habe, dass es sich um ein mobiles Gerät handelt, indem ich:
bool IsMobile = Page.Request.Browser.IsMobileDevice;
y
if (IsMobile == true)
{
mobileScript.Visible = true;
}
Prost
Trev.