當談到Javascript/jQuery時,我總是新手,所以希望你能幫助我。從粘貼的文本去掉文本框中的「http://」
我有一個文本框,大多數人都會粘貼鏈接。是否有一個很好的方式讓文本框檢測到已經粘貼了一個鏈接(從http://
開始),然後在文本框中動態刪除協議,而無需事後按下按鈕左右?
當談到Javascript/jQuery時,我總是新手,所以希望你能幫助我。從粘貼的文本去掉文本框中的「http://」
我有一個文本框,大多數人都會粘貼鏈接。是否有一個很好的方式讓文本框檢測到已經粘貼了一個鏈接(從http://
開始),然後在文本框中動態刪除協議,而無需事後按下按鈕左右?
假設你希望它儘快剝離出來當用戶鍵入/粘貼它:
比方說,爲了討論各種情形,你已經給了文本輸入的ID「URL」:
$(document).ready(function(){
var timer;
$("#url").live("keyup",function(){
clearTimeout(timer);
timer = setTimeout(function(){
var textbox = $("#url");
if (textbox.val().indexOf("https://") == 0)
textbox.val(textbox.val().substring(8));
if (textbox.val().indexOf("http://") == 0)
textbox.val(textbox.val().substring(7));
},500);
});
});
正如@Marcel Korpel在評論中提到的那樣,現在應該照顧你想要的東西。
你也可以結合定時器(例如一秒)完成這個'onkeypress',所以在按下最後一個鍵之後的一秒鐘,表單域改變了。是的,當使用網站作爲某種代理時(從另一個具有訂閱的IP地址訪問網站;例如:https://),我在中間看到帶有「http://」的網址www.example.com/access/http:// hiddensite.org')。 – 2010-07-29 15:21:20
@Marcel:請參閱我上面修改的帖子,讓我知道這是否有效。我把延遲設置爲半秒,而不是整秒,但這很容易改變。 – Ryan 2010-07-29 15:43:32
這[作品](http://jsbin.com/ihopu/edit#preview),雖然我不確定這是否適用於OP的實際問題;),因爲它剝離協議,而不管它是否是http :'或'https:',使得幾個站點無法訪問(當在輸出中重新連接'http:'時)。 – 2010-07-29 16:01:13
這將檢查以確保它以http://開頭,然後將其替換。
$(document).ready(
function()
{
$("#url").change(
function()
{
var textbox = $(this);
if (textbox.val().indexOf("http://") == 0)
textbox.val(textbox.val().substring(7));
});
});
這裏也是一個工作示例來看看: http://jsfiddle.net/epwDA/4/
謝謝!不如瑞恩的解決方案,但這也是一種魅力。將這個答案標記爲有用的,當我可以(顯然我太新,這個網站做到這一點呢..) 並感謝關於jfiddle – larschanders 2010-07-30 11:30:30
你希望它剝離出的「http://」立即只要它的輸入/粘貼或只是在提交的形成? – Ryan 2010-07-29 14:49:51
如果有人粘貼「https」鏈接會發生什麼? – 2010-07-29 14:56:24