2010-08-07 62 views
2

我正在使用jqTouch爲我的web應用程序運行在多個不同的手機上,包括iPhone。我遇到的問題僅限於iPhone。jQuery val()打開鍵盤

當我使用jQuery函數val()在表單上設置值時,鍵盤會自動打開。我不希望這種情況發生在我更改數值或僅向默認值添加預先存在的表單時發生 - 它應該僅在用戶嘗試輸入值時發生。

當在表單輸入上調用val()時,有沒有辦法阻止鍵盤彈出?我試圖在撥打val()後立即使用$(':focus').blur(),但鍵盤仍然打開和關閉非常快,這是不可接受的。

回答

1

如果可行,您可以隨時使用jQuery aop向val調用添加$(':focus').blur()。像這樣的東西可能會起作用。

jQuery.aop.after({target: jQuery, method: 'val'}, 
    function(response){ 
     if(typeof(response) == 'string') 
     $(':focus').blur(); 

     return response; 
}); 

我不太確定那個目標是否可以工作,但是你可以玩這種東西,看看你是否無法正常工作。如果你不想爲jQuery方法添加副作用(可能是一個糟糕的想法),你總是可以製作自己的函數valNoKeyboard(),既可以作爲獨立函數,也可以作爲jQuery插件。我認爲jQuery插件路線更有意義,除非有更好的方法來做到這一點。

+0

我會玩它,讓你知道它是否適合我。謝謝。 – 2010-08-08 18:17:19

+0

它正在爲我工​​作的小小變化。再次感謝提示。 ({target:jQuery,method:'val'} if ) return response; } ); – 2010-08-11 19:36:29

+0

很高興你的工作:)。我想我的答案反映了對你有用的東西。 – 2010-08-11 19:40:03