Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在输入VueJS/Semantic UI时阻止表单提交_Javascript_Jquery_Forms_Vue.js_Semantic Ui - Fatal编程技术网

Javascript 在输入VueJS/Semantic UI时阻止表单提交

Javascript 在输入VueJS/Semantic UI时阻止表单提交,javascript,jquery,forms,vue.js,semantic-ui,Javascript,Jquery,Forms,Vue.js,Semantic Ui,我们已经为这个问题寻找了两天的解决方案,但到目前为止,所有建议的解决方案都不起作用 我的表单html是用 <form id="quote_form" action="" method="get" class="ui large form"> 我还尝试通过以下方式覆盖enter键并防止其触发submit功能: $('#quote_form').on('keyup keypress', function(e) { var keyCode = e.keyCode || e.which

我们已经为这个问题寻找了两天的解决方案,但到目前为止,所有建议的解决方案都不起作用

我的表单html是用

<form id="quote_form" action="" method="get" class="ui large form">
我还尝试通过以下方式覆盖enter键并防止其触发submit功能:

$('#quote_form').on('keyup keypress', function(e) {
  var keyCode = e.keyCode || e.which;
  if (keyCode === 13) {
    e.stopPropagation();
    e.preventDefault();
    return false;
  }
});

$(document).on("keypress", "form", function(event) {
  return event.keyCode != 13;
});

$('#quote_form').bind('keypress keydown keyup', function(e){
  if(e.keyCode == 13) { e.preventDefault(); }
});
表单有多个填写步骤。每一步都使用一个按钮来允许前进到下一步。按下enter键后,表单将重定向到表单的第一步/选项卡。它不重定向的唯一情况是当当前步骤的规则不满足时。表单提交由提交按钮处理,该按钮本身调用方法来验证和提交表单。我找不到输入提交行为和提交按钮之间的任何联系


如果我缺少任何有用的信息来帮助找出原因,请让我知道。我不习惯在这里提问,希望尽可能避免我的问题被认为是不好的:)

只需在输入标记的末尾使用@keyup.enter.prevent即可。看

顺便说一句,您应该尝试使用本机VueJS事件,而不是使用JQuery重做所有事件
@submit.prevent

我找到的解决方案只考虑语义用户界面而不考虑VueJ,但应该适用于这里,并提供了对该问题的一些见解

问题产生于这样一个事实,即
$(“#formId”).form({…})
为按钮按下注册一个事件处理程序,并在选择其中一个输入框时按Enter键提交表单。当选择元素并选择事件侦听器类别时,可以在Chrome DevTools中看到这一点:

我发现消除这种行为的最简单方法是调用

$("#formId").unbind('keydown')

要从元素中完全删除向下键绑定。

需要防止在输入时按键,而不是在窗体上按键。
$('#quote_form').on('keyup keypress', function(e) {
  var keyCode = e.keyCode || e.which;
  if (keyCode === 13) {
    e.stopPropagation();
    e.preventDefault();
    return false;
  }
});

$(document).on("keypress", "form", function(event) {
  return event.keyCode != 13;
});

$('#quote_form').bind('keypress keydown keyup', function(e){
  if(e.keyCode == 13) { e.preventDefault(); }
});
$("#formId").unbind('keydown')