我应该使用什么按钮事件来确认html表单?

时间:2016-07-10 10:01:23

标签: javascript forms events

使用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;用于鼠标。但是用户可能会使用键盘而不是鼠标来提交表单。所以我怀疑表单不会对键盘确认动作做出反应。我没有发现任何与按下按钮相关的事件。那么如何解决这个问题?

4 个答案:

答案 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
});