2012-04-10 13 views
0

こんにちは、私は初心者のJavaスクリプトです。関数のパラメータとして値にハイフンを含む文字列変数を渡す際に問題があります。火災のバグで '数字が数字の直後に識別子が始まる'というエラーが表示されるハイフン付きの値を含む文字列変数をJavaスクリプト関数パラメータとして渡す方法

データを表示するためにflexigridを使用しています。各列には画像が配置されています。そのイメージをクリックすると、Javaスクリプト関数が呼び出されます。 flexigrid記録内容の設定はvaribleのObjIDの

record.put("view","<img src='images/ic_text_document.png' onclick='view_content("+objid+")'/> "); 

値がこのc2692d22-a407-4d38-85ee-5c16f25bcce7のようなもので、以下のようにJavaで行われます。 14桁目(上記の例では4)を指すことによって、数字リテラルのエラーの直後にFirebugが識別子をスローします。

他の投稿で示唆されているように引用符の異なる組み合わせで変数を渡してみましたが、誰か助けてくれますか?

答えて

0

それがレンダリングするとき、あなたがそこに引用符が必要

view_content(FOOBARSTRING) 

として表示されているのであなたは

record.put("view","<img src='images/ic_text_document.png' onclick='view_content(\""+objid+"\")'/> "); 
+0

私はそれを試しました。その場合、objidを評価せず、代わりにobjid自体を値として使用します。 – NitZRobotKoder

+0

** objidとは**は何ですか? '' objid''文字列はパラメータになりますか、 '' objid''は文字列とは何か異なっていますか? –

+0

私はちょうど私が間違った方法で引用符をエスケープしていた。迅速にタイムリーに応答していただきありがとうございます – NitZRobotKoder

0

のように、objid値を引用する必要があります。

record.put("view","<img src='images/ic_text_document.png' onclick='view_content(\""+objid+"\")'/> "); 

hclのマークアップにonclickハンドラを直接追加しないのが理想的です。

+0

私はそれを試みました。その場合、objidを評価せず、代わりにobjid自体を値として使用します。 – NitZRobotKoder

+0

あなたが言ったことは、objidがダッシュを含む文字列であるので、より多くのコードを表示する必要がありますが、今は他のことをしていると言います。 – epascarello

+0

私は間違った方法で引用符をエスケープしていただけです。提案された方法でそれをエスケープすることによって..迅速かつタイムリーな応答をありがとう... – NitZRobotKoder

1

htmlを生成する前にobjidをエスケープし、javascriptの値を使用するときはエスケープする必要があります。

ORこのような何かを......カウンタは各OBJ/objidのためだけに別の番号/値である

record.put("view","<img src='images/ic_text_document.png' onclick='view_content("+ COUNTER + ")'/><div style='display:none' id='objid"+ COUNTER + "'>" + objid + "</div> "); 

。 とjs:

function view_content(objidcounter){  
var real_objid = document.getElementById('objid' + objidcounter).innerText; 
... 
... 

} 
関連する問題