2014-06-19 2 views
6

Ich baue eine Web-Anwendung mit Cordova Targeting iOS. Ich habe dieses FormularFormular senden Schaltfläche Ereignis wird nicht erfasst, wenn die Tastatur ist iOS 7

<form id="formID"> 

    <div class="row"> 
    <input type="text" name="something1" placeholder="something1" class="form-control" required maxlength="26" /> 
    </div> 

    <div class="row"> 
    <input type="text" name="something2" placeholder="something2" class="form-control" pattern=".{6,6}" required /> 
    </div> 

    <div class="row"> 
    <input type="submit" value="Submit" class="button btn-primary" /> 
    </div> 

</form> 

In meinem Javascript habe ich dann einen Listener für das Senden Ereignis.

Mein Problem ist, dass wenn die Tastatur in iOS angezeigt wird, das Klicken auf die Senden-Schaltflächen nicht immer das Senden-Ereignis auslöst. Manchmal funktioniert es die ersten 2 mal aber dann hört auf zu arbeiten. Wer ist schon mal hineingerannt?

Jetzt müssen Sie möglicherweise zuerst auf der Tastatur auf "Done" klicken (damit es verschwindet) und dann die Senden-Schaltfläche verwenden. Oder klicken Sie auf die Schaltfläche zum Absenden, wobei die Tastatur anzeigt, dass sich der Keybpoard verdeckt, und klicken Sie dann erneut auf Senden.

Irgendwelche Ideen?

EDIT

Es funktioniert auf iOS 6, aber auf iOS 7 die Submit-Button kein Ereignis nach den ersten 2 Klicks auslösen.

+0

Ich habe ähnliche Probleme gesehen, aber in der Regel, wenn sie versuchen, die Tastatur zu schließen, indem ein Steuer klicken, die normalerweise nicht auf Klicks oder Taps reagiert. Ein weiterer guter Test ist zu sehen, ob Ihre Seite mit Mobile Safari genauso reagiert. Dadurch können Sie isolieren, ob dies für Cordova spezifisch ist oder allgemeiner für UIWebkit. – Palpatim

Antwort

5

So löste ich das Problem, das ich hatte. Wie in der Frage gesagt, hat es gut für ios6 und Android funktioniert. Aber für ios7 bemerkte ich, als ich die Höhe der Textfelder über dem Submit-Button erhöhte, bekam ich den oben beschriebenen Fehler. Wenn ich keinen nicht standardmäßigen Stil hinzugefügt habe, der die Höhe der Elemente beeinflusst hat, funktionierte der Übergabeknopf. Verrückt oder.

Aber dann lese ich diese question.

Anstatt also eine Submit-Button zu haben und meinen Skript warten, für den Fall vorlegen zu feuern, änderte es den Knopf auf einen Link und hörte ein touchend Ereignis. Bam, es funktionierte wie ein Zauber.

$(document).on('touchend', 'form #button', function (e) { 
    $('#formID').submit(); 
}); 

So ließ ich diese Bypass-Ereignis und löst das Ereignis vorlegen, damit auf der Tastatur, um die Schaltfläche „Go“ klicken noch eine Funktion einreichen auslösen.

+0

danke allot! hat mir geholfen, ich arbeitete für die letzten 2 Tage, um einen Fehler bei der Tastatur zu beheben !! – sputn1k

Verwandte Themen