2012-02-25 35 views
0

jqueryで構築されたフォームがあります。私はちょうどonfocusと空のフォームをしたいので、ユーザーが何かを入力すると、テキストが消えます。jqueryを使用してonfocusで引用符が正しくありません

var $myinput2 = js("<input id='CameraName' name='camera_name' size='24' maxlength='36' value='Enter label for camera' onfocus='if(this.value=='Enter label for camera') this.value='';'/>"); 

私は「(this.value ==場合」は

を指して、構文エラーを取得する私はこれが動作するようにします。事前に感謝を引用権利を取得するように見えることはできません。

答えて

2

をあなただけ点灯し、文字列の中に引用符をエスケープについて注意する必要があります文字列全体と同じ型の場合はeral、リテラルはで囲まれています。インラインonfocusハンドラ内で、それらの二重引用符をエスケープするためにあなたのJSは、二重引用符を使用する必要がありますが、文字列全体を二重引用符で囲まれているので、あなたが持っているので、

あなたは、あなたのHTML属性のための単一引用符を使用している:

リテラル文字列あなたのインライン onfocus内、ある は
var $myinput2 = js("<input id='CameraName' name='camera_name' size='24' maxlength='36' value='Enter label for camera' onfocus='if(this.value==\"Enter label for camera\") this.value=\"\";'/>"); 

次のようになります。

"... onfocus='if(this.value==\"Enter label for camera\") this.value=\"\";' ..." 

このような実際の値であること:

あなたはインラインイベントハンドラを使用し、代わりのようなものでしたしなかった場合、あなたはこの問題を持っていません
onfocus='if(this.value=="Enter label for camera") this.value="";' 

注:

var $myinput2 = js("<input id='CameraName' name='camera_name' size='24' maxlength='36' value='Enter label for camera' />"); 
$myinput2.focus(function() { 
    if(this.value=="Enter label for camera") 
    this.value=""; 
}); 

を(私はjsjQueryのためのあなたの別名であることを仮定しています。 )

+0

一言、それを考えていたはずです。ブリリアント、ありがとう! – Tom

1

建てHTML5でplaceholder属性を使用することを検討してください。

http://davidwalsh.name/html5-placeholder

+0

ありがとう、これは良いアイデアですが、私はまだサポートがないブラウザの代替手段が必要です。 – Tom

+0

この記事では、サポートされているかどうかを検出してフォールバックを使用する方法を説明しますが、それはあなた次第です。あなたは両方のためにあなたの方法を使うことができます。 –

関連する問題