Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.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 angularjs(爱奥尼亚)中的表单验证不';我不工作_Javascript_Angularjs_Validation_Ionic Framework - Fatal编程技术网

Javascript angularjs(爱奥尼亚)中的表单验证不';我不工作

Javascript angularjs(爱奥尼亚)中的表单验证不';我不工作,javascript,angularjs,validation,ionic-framework,Javascript,Angularjs,Validation,Ionic Framework,我想要实现什么? 我有一个表单,其中输入有特定类型,并且是必需的。每当用户单击“提交”时,我都要检查表单是否通过验证 这是最简单的演示,展示了我在多大程度上完成了所有工作:(使用解决方案更新) 我创建了名为doForm的提交处理程序,用于处理提交按钮上的单击事件。 在内部,我可以访问变量表单(表单名称) 根据一些来源(),我应该能够执行表单$valid,并得到一个布尔值来显示表单是否有效。结果证明这是行不通的 当我运行一些繁琐的代码时,它确实起作用: formy=angular.element(

我想要实现什么?

我有一个表单,其中输入有特定类型,并且是必需的。每当用户单击“提交”时,我都要检查表单是否通过验证

这是最简单的演示,展示了我在多大程度上完成了所有工作:(使用解决方案更新)

我创建了名为
doForm
的提交处理程序,用于处理提交按钮上的单击事件。 在内部,我可以访问变量
表单
(表单名称)

根据一些来源(),我应该能够执行表单$valid,并得到一个布尔值来显示表单是否有效。结果证明这是行不通的

当我运行一些繁琐的代码时,它确实起作用:
formy=angular.element(theForm.scope().theForm
然后突然
formy.$valid
起作用

我做错了什么

更新(已解决)
此解决方案得益于标记的答案:

您需要将表单传递给正在调用的函数

因此,您的提交按钮代码需要更改为

<input type='submit' value='submit' ng-click='doForm(theForm)' />
$scope.doForm = (theForm) ->
您需要删除此部分以清除控制台中的错误

  formy = angular.element(theForm).scope().theForm

  if formy.$valid == true
    console.log "Wrong is valid"
  else
    console.log "Wrong is not valid"
因此,完整的提交函数如下所示

$scope.doForm = (theForm) ->
  # Here `theForm` is an html element, not a 
  # angular-ised object

  # So this doesn't work:
  if theForm.$valid == true
    console.log "I am valid"
  else
    console.log "Form isn't valid"

请注意,您需要在最后一个输入框中输入有效的电子邮件地址格式以正确验证。

您需要将表单传递给正在调用的函数

因此,您的提交按钮代码需要更改为

<input type='submit' value='submit' ng-click='doForm(theForm)' />
$scope.doForm = (theForm) ->
您需要删除此部分以清除控制台中的错误

  formy = angular.element(theForm).scope().theForm

  if formy.$valid == true
    console.log "Wrong is valid"
  else
    console.log "Wrong is not valid"
因此,完整的提交函数如下所示

$scope.doForm = (theForm) ->
  # Here `theForm` is an html element, not a 
  # angular-ised object

  # So this doesn't work:
  if theForm.$valid == true
    console.log "I am valid"
  else
    console.log "Form isn't valid"

请注意,您需要在最后一个输入框中输入有效的电子邮件地址格式才能正确验证。

非常感谢!您是否知道视图中的
form
变量与控制器中的变量之间的区别?我还有一个与框架相关的问题。如何从标题触发
doForm(theForm)
?似乎
表单
不适用于
离子内容
标签之外的内容。这里说明了这一点:我不认为您将表单声明为作用域上的变量,因此它不存在,也不应该存在。只需将表单传递给您的提交功能,一切都很好。然后通过提交函数中的ng模型访问表单输入。祝你好运谢谢你的回复。我的意思是,当我按“do”(在我评论中提到的链接中)时,我无法访问表单,因此我无法传递它。因此,当您在jsbin中打开控制台时,会看到“表单不存在”。我理解您现在的问题。它的工作原理如下:您需要将表单设置为一个范围变量,并且可以使用表单内部div中的ng init来实现这一点,该div调用函数以在$scope变量中设置表单。然后你可以打电话给“doForm”功能,不用担心传递任何信息。非常感谢!您是否知道视图中的
form
变量与控制器中的变量之间的区别?我还有一个与框架相关的问题。如何从标题触发
doForm(theForm)
?似乎
表单
不适用于
离子内容
标签之外的内容。这里说明了这一点:我不认为您将表单声明为作用域上的变量,因此它不存在,也不应该存在。只需将表单传递给您的提交功能,一切都很好。然后通过提交函数中的ng模型访问表单输入。祝你好运谢谢你的回复。我的意思是,当我按“do”(在我评论中提到的链接中)时,我无法访问表单,因此我无法传递它。因此,当您在jsbin中打开控制台时,会看到“表单不存在”。我理解您现在的问题。它的工作原理如下:您需要将表单设置为一个范围变量,并且可以使用表单内部div中的ng init来实现这一点,该div调用函数以在$scope变量中设置表单。然后你可以调用“doForm”函数,而不必担心传递任何信息。