2016-09-14 47 views
-1

我試圖讓JavaScript函數對應onclick事件的源代碼。 如果onclick函數內有單引號('),則會出現錯誤。 下面是示例代碼,無法讀取的特性「的toString」未定義(onclick.toString())

<html> 
    <head> 
     <script language="JavaScript" type="text/javascript"> 
      function selectedInputChange(input, mode, auth) { 
      } 
      function onClickToString() { 
       try { 
        document.getElementById('demo').innerHTML = document.getElementById('radioSelect').onclick.toString(); 
       } 
       catch(err) { 
        document.getElementById("demo").innerHTML = err.message; 
       } 
      } 
     </script> 
    </head> 
    <body> 
     <h1>My First JavaScript</h1> 
     <input type="radio" id="radioSelect" onclick="selectedInputChange('Some input with ' in it')"/> 
     <button type="button" onclick="onClickToString()">Click Here</button> 
     <p id="demo"></p> 
    </body> 
</html> 

如果沒有單引號存在,那麼我得到正確的輸出,但如果有一個單引號我越來越

無法讀取屬性「的toString '的undefined

錯誤響應,如何獲得字符串,即使有單引號?

編輯 注意:我無法控制HTML內容,我只是在iframe中加載網頁,這給了我上面的HTML源代碼。 因此,按照其中一個評論,它不是一個錯字。

+0

你不能用這種方式綁定處理程序。 – passion

+1

這只是一個錯字,缺少反斜槓。 –

+0

沒有它,整個內容將在iframe中,我們無法控制它。 – Vignesh

回答

-1

在這種情況下,「點擊」不反對,只是事件。 如果你想得到onclick的內部字符串值,你可以通過「getAttribute」獲得。

document.getElementById('radioSelect').getAttribute("onclick"); 

關於的getAttribute https://developer.mozilla.org/en/docs/Web/API/Element/getAttribute

+0

如果有多個無線電選擇,每個選擇在onclick上有不同的輸入會怎麼樣? – Vignesh

0

此屬性包含無效的JavaScript(JavaScript和它語法錯誤):

// JavaScript string ends here ---------------v 
onclick="selectedInputChange('Some input with ' in it')" 
// So this is a syntax error ------------------^^^^^^^^ 

你需要一個反斜槓包含單引號:

onclick="selectedInputChange('Some input with \' in it')" 

其工作原理:

function selectedInputChange() { 
 
    document.getElementById('demo').innerHTML = document.getElementById('radioSelect').onclick.toString(); 
 
}
<input type="radio" id="radioSelect" onclick="selectedInputChange('Some input with \' in it')"/> 
 
<p id="demo"></p>

相關問題