2012-03-21 54 views
10

我在信用卡過期字段中使用了monthpicker輸入(類似於jQuery UI datepicker)。如何在網頁上關閉指定輸入字段的iPhone鍵盤

我需要禁止iPhone鍵盤,因爲它隱藏了月份選取器。

我試圖設置字段爲只讀,它不是一個可以接受的解決方案 - 在Safari iOS 5.1中只讀字段在鍵盤導航(鍵盤上的上一個/下一個按鈕)中跳過。模糊字段也是不可接受的,因爲它會觸發驗證(我們也在使用jQuery驗證)。

有沒有辦法在單個字段上關閉iPhone鍵盤而不將其設置爲只讀或模糊?

回答

5

我還沒遇到隱藏鍵盤的方法。但你有沒有想過顯示「輸入」的替代方式?一種選擇是使用<input type="month" />,它在iOS5中帶來了本地月份選擇器。

第二個選項是造型,例如。 span元素作爲輸入元素(-webkit外觀不適用於iOS),併爲元素添加tabindex。這也可以工作,雖然我不知道你使用的月份選擇器。

第三個選項 - 當手動觸發模糊字段時,您不能阻止驗證過程嗎?

+1

不錯! ''爲iPhone提供更好的月份選擇器。歌劇11.6彈出一個完整的日期選擇器,所以我不得不以某種方式解決。這並不回答問題,但它看起來像解決了問題。 – 2012-03-22 17:15:49

+1

所以我做了一個蹩腳的用戶代理檢查iPhone和iPod,並設置類型屬性爲「月」如果爲true,並且只加載monthpicker如果爲false。很棒。我將在稍後使用screenize + ontouchstart重新訪問,而不是用戶代理檢查。非常感謝你! – 2012-03-23 16:20:04

2

我在Drupal,其中輸入字段將被動態追加了同樣的問題,所以我加了一些JS,檢查iPhone/iPad版,並加入「只讀」屬性

var checkUserAgent = navigator.userAgent; 
    if (checkUserAgent.match(/iPad/i) || checkUserAgent.match(/iPhone/i)) { 
     var checkBabyId1 = $('#babys_due_date_id').length > 0; 
     if (checkBabyId1 == true) { 
      $('#babys_due_date_id').find('input').prop('readonly', true); 
     } 
    }