2017-02-19 56 views
0

我有一個錨定標記纏繞在無線電輸入上。當我點擊它們時,單選按鈕會被檢查,但錨標記不會執行任何操作。錨點標記點擊事件正在觸發,但默認不是

<a href="https://stackoverflow.com"> 
    <input type="radio" /> 
</a> 

我嘗試添加一個onclick處理到錨標記,以查看是否被點擊它和它的工作如預期:

<a onclick="console.log('anchor clicked');" href="https://stackoverflow.com"> 
    <input type="radio" /> 
</a> 

這也讓我明白了正被點擊的錨標記,以便兩次我添加event.stopPropagation到輸入標記:

<a onclick="console.log('anchor clicked');" href="https://stackoverflow.com"> 
    <input onclick="event.stopPropagation();" type="radio" /> 
</a> 

回答

2

這是無效的html5。根據the speca元素的內容模型聲明它不能將交互式內容作爲後代。非隱藏的input是交互式內容。

+0

我在css中將它設置爲'none'。 – epiqueras

+0

@epiqueras閱讀鏈接。一個非隱藏的'input'是'type = hidden' –

+0

正確的答案,但我認爲你的意思是「一個非隱藏的輸入」是*除*'type = hidden'之外的任何東西「 –