Javascript 使链接元素内的元素不是链接

Javascript 使链接元素内的元素不是链接,javascript,html,onclick,Javascript,Html,Onclick,基本上,我希望能够单击表单上的输入,而不必将我带到li元素中的链接 上述代码输出的内容: 让单击处理程序更改位置而不影响表单输入的一种方法是检查单击元素的标记名。如果是列表项,则更改位置,否则不执行任何操作 <li id = 'search'<?php if(strcmp($PageType,'Search') == 0){print("class='active'");} ?> onclick = "location.href = '<?php $AdvSea

基本上,我希望能够单击表单上的输入,而不必将我带到li元素中的链接

上述代码输出的内容:


让单击处理程序更改位置而不影响表单输入的一种方法是检查单击元素的标记名。如果是列表项,则更改位置,否则不执行任何操作

<li id = 'search'<?php if(strcmp($PageType,'Search') == 0){print("class='active'");} ?> 
    onclick = "location.href = '<?php $AdvSearchRoot = $Root . "/search/advancedsearch.php"; echo $AdvSearchRoot; ?>'">
    <form id = 'searchform' action = '<?php $SearchRoot = $Root . "/search/search.php"; echo $SearchRoot; ?>' method = 'get'>
        <input type = 'text' id = 'searchBox' name = 'searchTerm' placeholder = 'Search' required></input>
        <input type = 'submit' value = 'submit'></input>
        <a id = 'AdvancedSearch' href = '<?php echo $AdvSearchRoot;?>'>Advanced Search</a>  
    </form> 
</li>
这将利用click处理程序的隐式事件参数以及它的属性,并检查被单击元素的标记名


请参见中的演示

链接是什么元素?如果列表项的唯一内容是锚定链接和输入,那么使用onclick属性更改位置有什么意义?列表项中是否应该有其他内容,例如文本、图像等?@blackandrangecat li和aelements@SamOnela,这样您就可以单击li元素以及“高级搜索”,它也可以执行相同的操作。@Sam Onela Derp,意思是说li元素
<li id = 'search'<?php if(strcmp($PageType,'Search') == 0){print("class='active'");} ?> 
onclick = "if (event.target.tagName.toUpperCase() == 'LI') location.href = '<?php $AdvSearchRoot = $Root . "/search/advancedsearch.php"; echo $AdvSearchRoot; ?>'">