2012-07-30 38 views
0

我有一個功能,單擊時,填寫父窗口的字段。在這種情況下,它是一個名稱(文本)字段。單引號在Javascript參數

我遇到的問題是,如果該字段中有一個單引號(例如比爾的辣椒),該函數將失敗,因爲它讀取單引號作爲參數的結尾。

這裏是呼叫:

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

再次,如果名字是比爾的辣椒,它會導致一個語法錯誤。

有沒有辦法將這個單引號自動轉換爲HTML等價物,以便它能夠正確讀取?

感謝

+3

http://stackoverflow.com/q/1219860/1499781 – 2012-07-30 17:53:12

+1

你用什麼語言來生成JavaScript? – JJJ 2012-07-30 17:53:47

+0

'''或'\'' – inhan 2012-07-30 17:56:01

回答

0

試試這個

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

它會修正任何有'''的東西,但是如果描述有'''怎麼辦? – JJJ 2012-07-30 17:55:17

2

對於在現場使用單引號\'更多信息轉義字符here

href="javascript:selectItem('Bill\'s Chilli','recipe_name','<recipe_description')" 
0

您可以嘗試使用逃脫 '雙' 報價這樣的:

HREF = 「JavaScript的:選擇信息(\」 配方\ 「\ 」recipe_name \「,\ 」recipe_description \「)」

請讓我知道它是否有效。通過&#39等「;

+0

什麼在這個例子中不起作用? – timestopper 2012-07-30 17:58:59

+0

如果描述是「Wild」Bill's Chili',會發生什麼? – JJJ 2012-07-30 17:59:48

+0

請提供正確的解釋,不只是'-1'=) – timestopper 2012-07-30 18:00:07

0

你可以使用str.replace

只是remplace」由& QUOT。:)

但實際上,我假設你得到所有的東西從php腳本(從某種存儲),在這種情況下,你可以直接用php來逃避報價,這將更安全。

1

我發現的答案是完全不同的,比我想象的頁面本身寫的是ASP(對不起,我忘了提及,自從f以來我覺得它並不重要聯合是JavaScript,它被稱爲HTML)。

所以,我只是用這樣的:

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

然後在函數調用中使用fixed_name代替recipe_name。

感謝您的幫助,它使我朝着正確的方向前進!

+2

所以你剝去了報價,把*比爾的辣椒*變成*票據辣椒*?正如其他人所建議的那樣,我會認真考慮轉義它:'fixed_name = Replace(recipe_name,「'」,「\\'」)'(不確定是否需要像ASP中的雙反斜槓那樣在C-喜歡語言) – 2012-07-30 19:36:14