テキストエリアにURLが入力されているか確認したい。これはテキストエリアをチェックする関数です:
$('#text textarea').on('input paste', function() {
checkUrl($(this));
});
許可される URL は 1 つのみであるため、URL ハンドラーが見つかったら、off を使用してバインドを解除します。
function checkUrl(elem) {
var words = elem.val().split(/\s+/);
$.each(words, function(index, element) {
if (isValidURL($.trim(element))) {
$.ajax({...}); // Ajax call
elem.off('input paste');
return;
}
});
}
関数 checkUrl は、URL を貼り付けた後 (CTRT+V) に 1 回だけでなく 2 回呼び出されます。Ajax も 2 回トリガーされます。
よろしくお願いします。
編集
これに従ってコードを変更しました:
$('#text textarea').bind('paste', function() {
var _this = $(this);
setTimeout( function() {
checkUrl(_this);
}, 100);
});
現在、貼り付けハンドラーのみで動作していますが、主な問題は解決していません...