2011-02-13 5 views
0

私は、次を追加しています:アペンド機能アポストロフィ

$('#field').append("<input type='text' id='searchfield' placeholder='Search...' autosave='save' results='5' onkeyup='onChange('searchfield','searchfield_right')' />") 

それは追加だが、のonChange関数はアポストロフィによる動作していない...

onkeyup="onChange('searchfield','searchfield_right')" 

を、それが"で上記のようになります。および''searchfield','searhfield_right'

'を追加する必要がある場合は、 となるため、'searchfield','searhfield_right'"searchfield","searchfield_right" と正しく表示されません。

右アポストロフィを追加する別の方法は'ですか?

答えて

1

属性値は、'文字で区切られています。したがって、値の中にリテラル'を使用しようとすると、値の一部ではなく値が終了します。

onkeyup='onChange(' 

エンティティ(&#39;)で表します。より良い(実際にはるかに良い)unobtrusive JavaScriptを使用してください:HTMLではなく、JavaScriptでイベントハンドラをアタッチしてください。

0

ただエスケープします。

$('#field').append("<input type='text' id='searchfield' onkeyup='onChange(\"searchfield\",\"searchfield_right\");' />"); 

しかし、私はイベントハンドラを使用する必要があることに同意します。代わりに文字列変数を渡すの

0

、ちょうどthiseventを渡す:

onkeyup="onChange(this, event)" 

その後、あなたのonChange機能で、あなたが使用することができます。

function onChange(element, event) { 
    var id = element.id, 

} 

あなたは絶対に確信している、しかし、あなたがしたい場合は引用符をエスケープする:

onkeyup="onChange(\"searchfield\",\"searchfield_right\")" 

--->Demo < ---

+0

ありがとう!両方のソリューションが動作しています – Cam

関連する問題