语义 UI 在成功时,在表单验证时未触发失败回调
Semantic UI onSuccess, onFailure callbacks not being fired upon form validation
在以下验证用户名具有值且密码匹配的代码中,即使正在执行/强制执行验证规则,也不会触发onSuccess和onFailure回调。 我已经独立测试了所有其他部分,并且此布局完全遵循文档,因此我排除了语法错误。除了下面使用的语法之外,我还尝试了$().form().onSuccess().onSuccess().onFailure()的格式,但得到了"Uncatch TypeError:onSuccess 不是一个函数"。 在这里摆弄:语义 UI onSuccess,onFailure 回调示例。
$(function(){
$('#main')
.form({
on: 'blur',
fields: {
username: {
identifier : 'username',
rules: [
{
type : 'empty'
}
]
},
password1: {
identifier : 'password1',
rules: [
{
type : 'match[password2]',
prompt : 'Please enter the same value in both fields'
}
]
},
password2: {
identifier : 'password2',
rules: [
{
type : 'match[password1]',
prompt : 'Please enter the same value in both fields'
}
]
}
},
onSuccess: function() {
$(".ui.button[name='account']").removeClass('disabled');
console.log('Success');
},
onFailure: function() {
$(".ui.button[name='account']").addClass('disabled');
console.log('Failure');
}
}
);
});
关键是要这样称呼它。 $('#main').form(fieldRules, settings);
onFailure
和onSuccess
在设置中注册。
看看修改后的代码:
$(function(){
$('#main')
.form({
username: {
identifier : 'username',
rules: [
{
type : 'empty'
}
]
},
password1: {
identifier : 'password1',
rules: [
{
type: 'empty',
prompt: 'Please enter the password'
},
{
type : 'match[password2]',
prompt : 'Please enter the same value in both fields'
}
]
},
password2: {
identifier : 'password2',
rules: [
{
type : 'match[password1]',
prompt : 'Please enter the same value in both fields'
}
]
}
}, {
on: 'blur',
inline: true,
onSuccess: function() {
alert('Success');
return false; // false is required if you do don't want to let it submit
},
onFailure: function() {
alert('Failure');
return false; // false is required if you do don't want to let it submit
}
});
});
我也遇到了这个问题。我尝试了一切,我能成功开火的唯一方法就是这样做:
const formValidated = $('.ui.form').form(
{
fields: {
name: {
identifier: 'name',
rules: [
{
type : 'empty',
prompt : 'Please enter a name for the camera'
}
]
},
}
}
)
if ($(formValidated).form('is valid')) {
this.handleSave();
} else {
return false;
}
遇到
这个问题几个小时后,我发现这对我有用(语义 UI @2.4.1,jquery @3.1.1):
$(document).ready(function () {
$('#message-center form').form({
fields: {
email: {
identifier: 'email',
rules: [
{
type: 'empty',
prompt: 'Please enter your email.',
},
{
type: 'email',
prompt: 'Please enter a valid email.',
},
],
},
},
onSuccess: function (event) {
event.preventDefault();
sendMessage(event);
return false;
},
});
});
请注意,onSuccess
与 fields
位于同一选项对象上。
相关文章:
- 当我的单元测试失败时,回调被调用了两次
- AJAX 回调在 Firefox 中失败
- 客户端如何知道发射是否失败?socket.emit()有回调吗
- 返回按钮回调函数在特定情况下失败或未启动
- ajax中的refrer函数名,失败时反向回调
- IE中的jQuery load()回调失败
- 咖啡脚本化的 ajax 调用结果在实际成功时失败回调
- 为什么 Ajax 请求成功,但最终以失败回调告终
- rsvp.js 如何处理被拒绝的承诺和失败回调链
- Corodva 文件读取执行成功和失败回调
- 语义 UI 在成功时,在表单验证时未触发失败回调
- .post()失败回调函数
- 在Jasmine单元测试中,如何强制失败回调来触发失败请求
- 虽然执行了Ajax请求,但调用了失败回调,服务器返回200个数据
- jquery.ajax究竟什么时候运行失败回调
- BreezeJS失败回调导致'undefined不是对象错误'例外
- jQuery ajax-只有在所有重试都失败时才触发失败回调函数
- Breeze entityManager调用失败回调,即使成功
- JQuery ajax()完成/失败回调在状态200时未返回
- jQuery.post() 失败回调函数