我有一個輸入字段,我不希望用戶粘貼任何值。我使用下面的jQuery代碼,它在桌面瀏覽器和iPhone Safari上運行良好。問題是它不適用於Android瀏覽器。如何在Android瀏覽器中使用JQuery禁用「粘貼」?
$('#no_paste').bind("paste", function(e) {
e.preventDefault();
});
這裏的fiddle
我有一個輸入字段,我不希望用戶粘貼任何值。我使用下面的jQuery代碼,它在桌面瀏覽器和iPhone Safari上運行良好。問題是它不適用於Android瀏覽器。如何在Android瀏覽器中使用JQuery禁用「粘貼」?
$('#no_paste').bind("paste", function(e) {
e.preventDefault();
});
這裏的fiddle
我測試過這個銀河SIII和Android瀏覽器似乎不發送 paste
事件。但是,在粘貼內容後它仍會發送input
事件。
如果用戶正在輸入字段,他將針對每個字母觸發一個input
事件。但是,如果他正在粘貼,則input
事件將僅爲粘貼的整個字符串觸發一次。在此基礎上觀察,我們可以阻止粘貼這樣的:
$('#ie').bind("input", function() {
var previousValue = $(this).data('old_value') || '',
newValue = $(this).val();
if((newValue.length - previousValue.length) > 1) {
$(this).val(previousValue);
}
$(this).data('old_value', $(this).val());
});
你會發現的jsfiddle here。
請注意,這也將阻止自動完成和所有其他奇怪的輸入技術以類似的方式工作(我不知道任何)。
我知道它與問題無關,但爲什麼禁用粘貼? –
那麼,不應該粘貼電子郵件確認,密碼確認等輸入字段。 – CalebC
我不確定我是否同意這一點。一些值得思考的食物:[防止用戶從剪貼板粘貼到強制性表單域](http://ux.stackexchange.com/q/21062/4487),[我應該讓用戶複製/粘貼到確認(http://ux.stackexchange.com/q/1488/4487) –