2012-01-05 12 views
1

このコードは入力テストタイプonClick="this.value+='http://'"に適用されていますが、ユーザーが入力を最初にクリックするとhttp://が追加されるように修正します。クリックで入力するテキストを一度追加する

アイデア?ありがとう。

+2

このエラーが発生しやすいコードを使用している理由がわかりません。 'onClick =" this.value + = 'http://'; this.onclick = ''; " –

+0

ありがとうございました。回答と私は受け入れます。 – jacktheripper

答えて

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と等しいかどうかを確認して、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; " –

+1

Robさんがコードサンプルを修正しました。 –

関連する問題