使用Javascript,没有框架,当我不希望重定向时,我应该使用什么按钮事件来确认表单?我希望用鼠标左键或键盘来确认表格。
我使用了这个元素:
<button type="button" value="1">Save</button>
使用type =&#34;提交&#34;用&#34;提交&#34;事件对我来说不是解决方案,因为这会创建重定向(值丢失)。所以我使用type&#34; button&#34;。
当我使用
时document.getElementById("advanced_form").addEventListener("click", saveOptions);
这甚至&#34;点击&#34;用于鼠标。但是用户可能会使用键盘而不是鼠标来提交表单。所以我怀疑表单不会对键盘确认动作做出反应。我没有发现任何与按下按钮相关的事件。那么如何解决这个问题?
答案 0 :(得分:1)
你仍然可以使用'type =“submit”'与'e.preventDefault();'来避免重定向。
我希望这有所帮助,祝你好运。
答案 1 :(得分:0)
来自您的澄清评论:
当我点击按钮时,表单中的值消失了,所以我明白表单是在没有任何值的情况下重新加载的。
提交表单...提交表单。结果取决于服务器发回的内容。
但值不应该消失,我需要的行为就像普通的浏览器窗口(WINAPI)
正常。
...页面不会清除值。如果我想关闭表单,请关闭标签页(html页面)。
但您可以使用submit
事件执行此操作,只需在event.preventDefault()
事件中使用submit
即可阻止表单提交:
document.getElementById("the-form").addEventListener("submit", function(event) {
event.preventDefault(); // Prevents the form from being submitted
});
无论用户是否使用鼠标,键盘或辅助技术提交表单,该事件都将可靠地触发。使用键盘或辅助技术提交表单时,提交按钮上的click
事件将不可靠地触发。
答案 2 :(得分:-1)
您可以使用提交按钮,但需要处理提交操作。试试这个(用jquery):
<input class="submit_button" type="submit" value="Save" />
<script>
function submit_form(e)
{
if (check_form_submit()) {
// check your data here
$(this).submit();
return;
}
e.preventDefault();
}
$(function() {
$('.submit_button').parents('form').submit(submit_form);
});
</script>
答案 3 :(得分:-1)
您仍应使用提交输入类型,但需要阻止默认操作,以便不重新加载页面。 如果您使用的是jQuery,那么这个代码段应该会有所帮助。
$('#my-form').submit(function(ev) {
ev.preventDefault(); // to stop the form from submitting
// Your code here
this.submit(); // If you want to submit at the end
});