Forms 引导标记输入表单按enter键提交
在Forms 引导标记输入表单按enter键提交,forms,input,bootstrap-tags-input,Forms,Input,Bootstrap Tags Input,在bootstrap标记输入中,按enter键提交下一个标记表单! 解决办法是什么 $("#inputID").tagsinput(); 回车键是回发表单的注册表。这就是为什么会发生这样一种情况:当您按下“回车”键时,它会触发“回发”事件,因此表单进入提交状态。 解决方案: 在页面加载时,保留用于标记输入的enter键: @using (Html.BeginForm("ActionName", "ControllerName", FormMethod.Post, new { onkeydown
bootstrap标记输入中,按enter键提交下一个标记表单!
解决办法是什么
$("#inputID").tagsinput();
回车键是回发表单的注册表。这就是为什么会发生这样一种情况:当您按下“回车”键时,它会触发“回发”事件,因此表单进入提交状态。
解决方案:
在页面加载时,保留用于标记输入的enter键:
@using (Html.BeginForm("ActionName", "ControllerName", FormMethod.Post, new { onkeydown = "return event.keyCode!=13" }))
如果使用asp.net mvc框架,这是一个简单的示例 首先,您需要将'Enter'映射到您的tagsinput
的confirmkeys
选项,然后您需要在Enter键上调用preventDefault()
,以防止提交表单。在我的解决方案中,当用户集中在标记输入字段中时,它仅阻止按enter键提交
为了增加一点冗余,我还将enter键重新映射到输入字段中的一个逗号,这只是为了确保
$('#tags-input').tagsinput({
confirmKeys: [13, 188]
});
$('#tags-input input').on('keypress', function(e){
if (e.keyCode == 13){
e.keyCode = 188;
e.preventDefault();
};
});
仅供参考,回车键映射为13,逗号在JS中为188。转到tagsinput.JS
查找行:
self.$container.on('keypress', 'input', $.proxy(function(event) {
在本功能结束前,添加以下内容:
if (event.which == 13) {
return false; // dont submit form !!
}
试试这个:
$('.bootstrap-tagsinput input').keydown(function( event ) {
if ( event.which == 13 ) {
$(this).blur();
$(this).focus();
return false;
}
})
这是我的工作
$('.bootstrap-tagsinput input[type=text]').on('keydown', function (e) {
if ( event.which == 13 ) {
$(this).blur();
$(this).focus();
return false;
}
});
默认情况下,cancelConfirmKeysOnEmpty选项设置为true,但在标记delimeter keydown事件中设置为false calls.preventDefault时。将其设置为false
此解决方案还解决了“带逗号”的问题
我面临着同样的问题。。。你找到解决方案了吗?你使用哪种后端框架?共享示例代码??可能重复的代码非常有用。我想添加一个更新。我想现在逗号键代码改成了44。如果源代码是sh*的一部分,我想修复它。祝你有美好的一天,杰夫。100%同意。通常的过程是建议修复并提交带有PR的修复,而不是直接编辑源代码。首先防止将项目添加到输入中
cancelConfirmKeysOnEmpty: false,
// If the field is empty, let the event triggered fire as usual
if (self.options.cancelConfirmKeysOnEmpty === false) {
event.preventDefault();
}