0

クリックすると親ウィンドウのフィールドに入力する関数があります。この場合、それは名前(テキスト)フィールドです。

私が抱えている問題は、フィールドに一重引用符が含まれている場合(Bill's Chiliなど)、パラメーターの最後として一重引用符を読み取るため、関数が失敗することです。

呼び出しは次のとおりです。

href="javascript:selectItem('recipe','recipe_name','<recipe_description')"

繰り返しますが、名前がBill's Chiliの場合、構文エラーが発生します。

その一重引用符を同等のHTMLに自動的に変換して、正しく読み取れるようにする方法はありますか?

ありがとう

4

5 に答える 5

2

フィールド内の一重引用符については、ここ\'でエスケープ文字に関する詳細情報を使用してください。

href="javascript:selectItem('Bill\'s Chilli','recipe_name','<recipe_description')"
于 2012-07-30T17:53:29.173 に答える
1

私が見つけた答えは、私が思っていたものとはまったく異なっていました。ページ自体は ASP で書かれています (関数が JavaScript であり、HTML で呼び出されたので、言及するのを忘れていましたが、問題ではないと思いました)。

したがって、私はこれを使用しました:

<%fixed_name = Replace(recipe_name,"'","") %>

そして、関数呼び出しで、recipe_name の代わりに fixed_name を使用しました。

あなたのすべての助けに感謝します、それは私を正しい方向に導きました!

于 2012-07-30T18:20:20.947 に答える
0

次のように、エスケープされた「二重」引用符を使用してみてください。

href="javascript:selectItem(\"recipe\",\"recipe_name\",\"recipe_description\")"

うまくいくかどうか教えてください。

于 2012-07-30T17:54:37.627 に答える
0

これを試して

href='javascript:selectItem("recipe","recipe_name","<recipe_description")'
于 2012-07-30T17:53:16.247 に答える
0

str.replaceを使用できます

" を " et ' を ' に置き換えるだけです。:)

しかし、実際には、php スクリプトから (ある種のストレージから) すべてのものを取得していると仮定しています。その場合、php で引用符を直接エスケープすることができます。

于 2012-07-30T17:58:43.107 に答える