Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.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 语义UI onSuccess、onFailure在表单验证时未触发回调_Javascript_Semantic Ui - Fatal编程技术网

Javascript 语义UI onSuccess、onFailure在表单验证时未触发回调

Javascript 语义UI onSuccess、onFailure在表单验证时未触发回调,javascript,semantic-ui,Javascript,Semantic Ui,在验证用户名是否有值以及密码是否匹配的以下代码中,即使正在执行/强制验证规则,也不会触发onSuccess或onFailure回调。我已经独立地测试了其中的所有其他部分,并且这个布局完全遵循文档,所以我排除了语法错误。除了下面使用的语法外,我还尝试了$().form().onSuccess().onFailure()的格式,但得到了一个“未捕获的类型错误:onSuccess不是函数”。在这里拉小提琴: 关键是这样称呼它$(“#main”).form(字段规则、设置) onFailure和onSu

在验证用户名是否有值以及密码是否匹配的以下代码中,即使正在执行/强制验证规则,也不会触发onSuccess或onFailure回调。我已经独立地测试了其中的所有其他部分,并且这个布局完全遵循文档,所以我排除了语法错误。除了下面使用的语法外,我还尝试了$().form().onSuccess().onFailure()的格式,但得到了一个“未捕获的类型错误:onSuccess不是函数”。在这里拉小提琴:


关键是这样称呼它<代码>$(“#main”).form(字段规则、设置)
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                                            
                    }
                  });
    });

关键是这样称呼它<代码>$(“#main”).form(字段规则、设置)
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;
  }

我也遇到了这个问题。我尝试了一切,唯一能成功开火的方法就是:

  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;
  }

我刚刚更新了jsfiddle上的代码,我刚刚更新了jsfiddle上根本不起作用的代码——验证现在甚至没有运行。再加上在第一个对象中放置
内联
效果很好,那么为什么
在成功时
在失败时
?我确保删除了第一个对象中的包装
字段:{}
,但仍然没有发生任何事情。啊哈!至少在最新版本(2.2.x)中,您不使用第二个设置对象。OP实际上已经有了正确的代码-问题是
onSuccess
onFailure
回调存在不直观的行为,特别是在我使用单字段表单时。基于
方法上的
验证完成时,不会调用它们。ie:
on:'blur'
on:'change'
并不意味着在最后一个字段验证后将立即调用
onSuccess
。您必须提交表单,如果是单字段表单,则使用
onValid
事件。这根本不起作用-验证现在甚至不运行。再加上在第一个对象中放置
内联
效果很好,那么为什么
在成功时
在失败时
?我确保删除了第一个对象中的包装
字段:{}
,但仍然没有发生任何事情。啊哈!至少在最新版本(2.2.x)中,您不使用第二个设置对象。OP实际上已经有了正确的代码-问题是
onSuccess
onFailure
回调存在不直观的行为,特别是在我使用单字段表单时。基于
方法上的
验证完成时,不会调用它们。ie:
on:'blur'
on:'change'
并不意味着在最后一个字段验证后将立即调用
onSuccess
。您必须提交表单,如果是单字段表单,则使用
onValid
事件。