2017-04-11 13 views
0

ページのHTMLコードにonclickイベントを保存する際に問題があります。 tr上の製品の 名称表が行で満たされる。このように表示する必要があります(名前の「1000 FA」)すべてのJavaScript onclick - 誤った解釈

<tr onclick="cart_pr('0K2FA-50030XX')">...</tr> 

つだけの記事は次のように誤って表示されます。

<tr onclick="cart_pr('1000" fa')>...</tr> 

これは間違っている、ちょうど "1000後の引用"を見てください。

その結果、記事1000 faをクリックすると、予期しないトークンが無効です。 そのテーブルは次のように動作します:

function FillArticles() 
{ 
    //--------- Request to DB -----------// 
    //--------- Parse json etc. 

    for(i=0;i<json.length;i++) 
    { 
     //----- Here goes loop to fill a table ----// 

     res.push("<tr onclick=cart_pr('"+obj.name+"')></tr>"); 

     //----- I don't show more, cause only line above is important, so.... 
     //----- below Closes the row with </tr> 
     res.push("</tr>"); 
    } 
    $("#mytable").html(res.join('')); 
    //--------- In this line in debugger, res is absolutely OK 
} 

この場合、どうすればよいですか?ヘルプ:))

+1

'obj.name'内に\ – Blazemonger

+0

で二重引用符と一重引用符をエスケープします。特にjQueryで既に作業している場合は、インラインイベントハンドラを追加しないでください! – JJJ

+0

javascriptを目立たないで使用してください。イベントを結びつけるためにonclick属性を使うのではなく、 '.on()'を使用してください。 –

答えて

0

私は引用符&#39;代わりの

res.push("<tr onclick='cart_pr(&#39;"+obj.name+"&#39;);'></tr> 

'を追加する必要がしかし、これは確かに複数の引数を持つ関数を使用した場合、特別に、クリック可能な行とテーブルを作成するための最良の方法ではありません。

このアプローチではなく、.on()をJQueryで使用する方がよいでしょう。

関連する問題