2017-02-19 4 views
0

У меня есть привязка, обернутая вокруг радиовхода. Когда я нажимаю на них, переключатель выбирается, но тег привязки ничего не делает.Anchor Tag's On Click Event Firing, но по умолчанию не

<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 spec модель контента элемента a заявляет, что он не может иметь интерактивный контент потомком. Не скрытый input - это интерактивный контент.

+0

Я устанавливаю его отображение «none» в css. – epiqueras

+0

@epiqueras прочитайте ссылку. не скрытый 'input' является' type = hidden' –

+0

Правильный ответ, но я думаю, что вы имеете в виду «не скрытый« вход »- это что-либо кроме *' type = hidden' » –