HTML Onlcick事件仅适用于#锚标记
问题描述:
当我尝试使用下面的代码调用函数my this page时。我似乎只刷新页面而不是调用脚本。HTML Onlcick事件仅适用于#锚标记
<form role="search" name="locationForm">
<div class="form-group">
<input id="locationInput" type="text" class="form-control" placeholder="Search">
</div>
<button class="btn btn-primary btn-lg" type="submit" onclick="start();">Submit</button>
</form>
如果我加上“#”到URL的末尾,重新加载页面,则因为它是假设的onlcick事件的作品。
据我所知这些是锚标签,我不知道为什么他们将需要在调用的函数。
我该如何纠正?因为我不想使用#。
答
您正在使用button
元素,该元素的默认行为在单击时提交其父窗体。 return false
将停止提交形式:
<button class="btn btn-primary btn-lg" type="submit" onclick="start(); return false;">Submit</button>
答
如果你不想按钮自动提交,你可以改变它的type
到button
。然后,它所要做的就是运行它的onclick代码。 (你仍然可以让该代码手动提交表单)
+0
也是一个有用的回应。感谢那。 – Yonkee 2015-03-18 21:21:17
答
我想你想在提交表单时运行start()函数吗? 你说你正在使用一个点击事件监听器。 尝试倾听提交事件,而不是。
$('#your_form_id').on('submit', function(e) {
e.preventDefault();
your script...
});
上面的代码基本上是这样做的。 此外,preventDefault保持实际提交自身的形式。 你可以访问表单数据与
$('#your_form_id').serialize();
我希望这会使你进入正确的方向!
这样做,谢谢你。现在想想看,它是有意义的,是试图发布,而不仅仅是行动onclick事件。 – Yonkee 2015-03-18 21:19:42