【问题标题】:'href' attribute does not work in <a> tag when i want to perform javascript function当我想执行 javascript 功能时,'href' 属性在 <a> 标记中不起作用
【发布时间】:2021-05-17 02:58:16
【问题描述】:

我在 html5 中使用 django(版本 3.1.6),当我想在“a”标签中执行任何链接并从“按钮”标签中的“脚本”执行函数时,单击链接文本不会发生任何事情。但如果我从按钮标签中的 onclick 属性中删除函数执行部分,则链接异常正常。这是我在 home.html(模板)中的代码:

<html>
<body>
<table>
   <tr>
<td>
<button class="rounded" type="button" id="btn1" onclick='my_function(`{{ object_from_classbasedview }}`)'>
<a href="some url here">
Click me!
</a>
</button>
</td>
</tr>
</table>
<text id='txt1'></text>
</body>

<script>
function my_function(param1){
event.PreventDefault();
document.getElementById('txt1').innerHtml=param1;
}
</script>
</html>

我尝试了许多解决方案,但都没有奏效。任何想法或解决方案表示赞赏????提前致谢。

【问题讨论】:

  • 在按钮内部有一个链接在语义上很奇怪,并且不清楚你在这里想要实现什么。为什么不只是有一个链接一个按钮(样式看起来像你想要的任何东西)来执行这两个操作?总体目标是什么?
  • 一个&lt;button&gt;不能包含任何交互内容,例如&lt;a&gt;
  • @David 谢谢你指导大卫,你的权利,它应该是按钮或 a,但我需要两者,因为我无法从“a”标签执行功能,或与“按钮”建立链接(根据我所学到的)但是它可能有一些技巧!但总体目标是:我想在网页中重定向用户,然后从数据库中获取一些信息并将其呈现在此网页上,所有内容都通过单击此按钮。
  • @alishokrollahi: “因为我不能从 'a' 标签执行函数” - 是的,你可以,通过在 JavaScript 中处理它的 click 事件。 "或使用 'button' 建立链接" - 可以,但在按钮的 click 处理程序中使用 JavaScript 重定向用户。 “我想在网页中重定向用户,然后从数据库中获取一些信息并将其呈现在此网页上” - 那么你想要的只是一个链接。只需链接到您希望用户访问的页面。您似乎完全涉及一个​​按钮,这过于复杂了。

标签: javascript html dom django-templates jinja2


【解决方案1】:

发生的情况是onClick 触发器在这里具有优先权。如果将a 标签放在按钮之外,href 也会发生同样的情况。

解决方案可能是仅使用 onClick 函数(完全删除 href)并在所述函数内执行重定向。

你的函数最终看起来像这样:

function my_function(param1){
    event.PreventDefault();
    document.getElementById('txt1').innerHtml=param1;
    window.location.href = "some url here";
}

【讨论】:

    猜你喜欢
    • 2013-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-09
    • 1970-01-01
    • 2015-08-01
    • 1970-01-01
    相关资源
    最近更新 更多