我有一个HTML5表单,如下所示,使用Bootstrap3设置样式,并包含range
输入和number
输入。这两个输入是链接的,因此每当我更改range
值时,number
输入都会更新,反之亦然。
让我感到困扰的是,当我更改number
输入值并点击Enter
键时,整个网页会重新加载,这会清除使用JavaScript加载到页面中的所有其他数据。
我的问题是,如何更改HTML /代码以禁用此重新加载行为?
感谢。
<form class="form-horizontal">
<div class="form-group">
<div class="col-xs-6">
<input type="range" class="policy_slider" name="demandRange" min="0.1" max="10" value="1" oninput="this.form.demandInput.value=this.value"/>
</div>
<div class="col-xs-1">
<input type="number" name="demandInput" min="0.1" max="10" value="1" step="any" oninput="this.form.demandRange.value=this.value"/>
</div>
</div>
</form>
答案 0 :(得分:4)
将表单设置为使用javascript和“return false”。之后,您可以使用其他功能进行实际提交。
<form class="form-horizontal" onSubmit="return false;">
JSFIDDLE:http://jsfiddle.net/biz79/m3veL3uh/
答案 1 :(得分:2)
由于已有普通的旧JS解决方案,我的答案基于JQuery。此外,Bootstrap JS需要Jquery。所以试试这个:
$("form").keypress(function(e) {
//Enter key
if (e.which == 13) {
return false;
}
});
如果您的页面中有多个表单,请使用以下命令:
$("#form_id").keypress(function(e) {
//Enter key
if (e.which == 13) {
return false;
}
});
其中form_id
是为您的表单指定的ID,如下所示:<form id="form_id">...</form>
礼貌:http://www.paulund.co.uk/how-to-disable-enter-key-on-forms
答案 2 :(得分:0)
您可以使用以下代码来阻止输入密钥提交表单。
<script type="text/javascript">
function stopRKey(evt) {
var evt = (evt) ? evt : ((event) ? event : null);
var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
if ((evt.keyCode == 13)) {return false;}
}
document.onkeypress = stopRKey;
</script>
我在http://webcheatsheet.com/javascript/disable_enter_key.php找到了该链接显示了当输入字段是文本字段时如何执行此操作。我删除了那部分,它会阻止它在所有领域。
答案 3 :(得分:0)
这有助于您避免提交表单。
<form class="form-horizontal" onsubmit='return false'>
如果不需要表单提交,请尝试删除表单并在需要时使用Ajax。
答案 4 :(得分:-1)
您必须使用Ajax以异步方式提交表单 - http://www.w3schools.com/ajax/default.asp 否则停止表单提交非常简单:
$("#yourForm").submit(e){
e.preventDefault();
}