2012-01-05 68 views
1

我有這個代碼適用於輸入測試類型onClick="this.value+='http://'",但我想修改它,以便它只添加http://第一次用戶單擊輸入。添加文本一次輸入點擊

任何想法?謝謝。

+2

不確定你爲什麼使用這個容易出錯的代碼。爲了滿足你的願望,在這裏你去:'onClick =「this.value + ='http://'; this.onclick ='';'' – 2012-01-05 11:27:43

+0

謝謝,回答,我會接受。 – jacktheripper 2012-01-05 11:29:51

回答

3

的回答你的問題是顯而易見的(稍微修改,添加前綴http://文本):

onClick="this.value = 'http://' + this.value; this.onclick = '';" 

然而,這種方法很容易出錯,和醜陋。您可能希望強制文本的前綴爲http://。如果用戶使用鍵導航到輸入字段(例如選項卡),則代碼將不起作用。

改進的方法是:

onfocus="if (this.value.substring(0,6)!=='http://') this.value = 'http://' + this.value;" 

不過,根據您的具體應用,其它的方法更適合。

2

您可以在全局設置一個計數器變量並檢查它是否等於1 add http://否則 不會添加。

1

試試這個:

<input type="text" onClick=" this.value.indexOf('http://') != 0 ? this.value = 'http://' + this.value : this.value; " /> 
+0

這個答案不正確。最接近的解決方案是:'onClick =「if(this.value.indexOf('http://')!= 0)this.value ='http://'this.value;」'。 – 2012-01-05 11:46:40

+1

感謝羅布修復了我的代碼示例。 – 2012-01-05 13:22:02