2016-12-06 47 views
0
$('.ui.form').form({ 
    fields: { 
     term: ['minLength[5]', 'empty'] 
    } 
}); 

$.fn.api.settings.api = { 
    'search': '_endpoint/check.php' 
}; 

$('#form').api({ 
    action: 'search', 
    method: 'POST', 
    serializeForm: true, 
    onComplete: function (response) { 
     if (response.success == true) { 
     } 
     else { 
     } 

    } 
}); 

如果我通过单击提交按钮提交表单,则没有问题。但是,如果我使用回车键提交表单,表单验证和ajax请求一起工作。所以提交通过验证。当使用Enter键提交表单时,语义UI表单验证器不会阻止请求

我该怎么办?

+0

我不明白,验证没有发生或发生,但表单得到提交吗?另外,你可以发布你的HTML吗? – fstanis

+0

验证发生但未停止提交。所以ajax请求也在运行。但通常点击提交按钮提交表单,没有问题。用Enter键提交表单时,发生问题。 – zottirik

+0

请用一个完整的示例(HTML)创建一个[JSFiddle](https://jsfiddle.net/),否则很难弄清楚发生了什么。 – fstanis

回答

1

语义UI增加了一个自己的键盘快捷键,当您按下回车键时提交表单,但由于某种原因,此提交似乎绕过了验证机制。这可能实际上是一个错误,所以我想urge you to report it

这就是说,当你初始化表,您可以禁用使用keyboardShortcuts: false这些快捷方式:

$('.ui.form').form({ 
    keyboardShortcuts: false, 
    fields: { 
     term: ['minLength[5]', 'empty'] 
    } 
}); 

大多数浏览器上,按Enter键,只是提交表单,所以这让你可以通过按提交相同的效果按钮。