2014-06-19 19 views
6

Tôi đang xây dựng một ứng dụng web bằng cách sử dụng nhắm mục tiêu theo cordova iOS. Tôi có dạng nàySự kiện nút gửi biểu mẫu không được chụp khi bàn phím bật lên 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> 

Trong javascript của tôi, tôi có người nghe cho sự kiện gửi.

Vấn đề của tôi là khi bàn phím hiển thị trong iOS, việc nhấp vào nút gửi không phải lúc nào cũng kích hoạt sự kiện gửi. Đôi khi nó hoạt động 2 lần đầu tiên nhưng sau đó ngừng hoạt động. Bất cứ ai đã chạy vào điều này trước đây?

Vì bây giờ bạn có thể cần phải nhấp vào "Xong" đầu tiên trên bàn phím (làm cho nó biến mất) và sau đó sử dụng nút gửi. Hoặc, nhấp vào nút gửi với bàn phím hiển thị sẽ làm cho keybpoard ẩn và sau đó nhấp vào gửi lại.

Bất kỳ ý tưởng nào?

EDIT

Nó hoạt động tốt trên iOS 6, nhưng trên iOS 7 vào nút gửi không kích hoạt một sự kiện sau khi 2 lần nhấp chuột đầu tiên.

+0

Tôi đã gặp sự cố tương tự nhưng thường khi cố gắng loại bỏ bàn phím bằng cách nhấp vào điều khiển không phản hồi bình thường với nhấp chuột hoặc nhấn. Một thử nghiệm tốt khác là xem trang của bạn có phản hồi giống như cách sử dụng Mobile Safari hay không; điều này sẽ giúp bạn tách biệt xem điều này có cụ thể với Cordova hay không hay hơn đối với UIWebkit. – Palpatim

Trả lời

5

Vì vậy, tôi đã giải quyết được vấn đề tôi đang gặp phải. Như đã nêu trong câu hỏi nó làm việc tốt cho ios6 và android. Nhưng đối với ios7 tôi nhận thấy khi tôi tăng chiều cao của các trường văn bản phía trên nút gửi, tôi đã nhận được lỗi được mô tả ở trên. Khi tôi không thêm bất kỳ kiểu dáng không mặc định nào đã thực hiện chiều cao của các phần tử bên trên nút gửi đã hoạt động. Thật kỳ lạ.

Nhưng sau đó tôi đọc số này question.

Vì vậy, thay vì có nút gửi và chờ tập lệnh chờ sự kiện gửi, tôi đã thay đổi nút thành liên kết và nghe sự kiện chạm. Bam, nó hoạt động như một sự quyến rũ.

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

Vì vậy, tôi để sự kiện này bỏ qua và kích hoạt sự kiện gửi để nhấp vào nút "Go" trên bàn phím vẫn kích hoạt chức năng gửi.

+0

cảm ơn tất cả! đã giúp tôi sửa lỗi với bàn phím mà tôi đang làm việc trong 2 ngày qua !! – sputn1k

Các vấn đề liên quan