Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.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 Formly表单-如何制作所需的单选按钮_Javascript_Angularjs_Forms_Angular Formly - Fatal编程技术网

Javascript AngularJS Formly表单-如何制作所需的单选按钮

Javascript AngularJS Formly表单-如何制作所需的单选按钮,javascript,angularjs,forms,angular-formly,Javascript,Angularjs,Forms,Angular Formly,我已经查阅了formly forms文档以及SO,但我无法确定下面的内容是否可行。有人遇到过解决方案吗 问题:如何配置表单单选按钮问题 背景:我有一个API,它将表单问题返回到前端。例如,我可能会得到以下信息: 这两个字段在数据库中都是“必需的”。如果我没有输入“你的博客URL是什么?”的答案,我会得到一个小小的“字段是必需的!”消息太棒了 但如果我不填写单选按钮,我就不会收到这样的信息。当我单击“确认”时,表单将挂起 你知道如何得到“这张表格是必需的!”有广播问题吗?同样,这些问题不是硬编码

我已经查阅了formly forms文档以及SO,但我无法确定下面的内容是否可行。有人遇到过解决方案吗

问题:如何配置表单单选按钮问题

背景:我有一个API,它将表单问题返回到前端。例如,我可能会得到以下信息:

这两个字段在数据库中都是“必需的”。如果我没有输入“你的博客URL是什么?”的答案,我会得到一个小小的“字段是必需的!”消息太棒了

但如果我不填写单选按钮,我就不会收到这样的信息。当我单击“确认”时,表单将挂起

你知道如何得到“这张表格是必需的!”有广播问题吗?同样,这些问题不是硬编码的,所以它不像在HTML中添加选项那么简单


是的,我试过使用required:true。使用select非常有效,但似乎无法使用单选按钮。请尝试以下操作:

formlyConfigProvider.setType([{
name: 'radio',
templateUrl: "radioTemplate.html",
wrapper: ['simpleLabel', 'errorMessage'],
defaultOptions: {
  noFormControl: false
},
apiCheck: function apiCheck(check) {
  return {
    templateOptions: {
      required: true,
      options: check.arrayOf(check.object),
      labelProp: check.string.optional,
      valueProp: check.string.optional
    }
  };
},
controller: ['$scope', 'HelpersService', function($scope, HelpersService) {
  if (['Internet Explorer', 'MSIE', 'Unknown', 'Edge'].indexOf(HelpersService.getBrowserName().name) > -1) {
    $scope.ieClass = 'ie';
  }
}]
}]))

我得到以下错误:

这让我相信这不是一个单选按钮选项。但是,如果我错误地解释了此错误,请让我知道!:)

有人要求提供一个代码示例。代码库中的许多代码是专有的;但是,我已经在下面包含了用于DB返回的问题的模板。我真正好奇的是,以前是否有人遇到过这个问题,是否有一个文档化的配置选项来解决这个问题,或者是一个非常简单的黑客攻击。否则,我将使用控制器中的函数来检测这一点

****并非所有从DB返回的问题都是必需的


在单选按钮中添加所需的

<input type="radio" name="myRadio" required ng-model="myModel" value="myValue"/>

然后,您可以使用ng disabled(ng禁用)来检查是否选择了收音机:

<input type="button" ng-click="action()" value="Next" ng-disabled="myform.myRadio.$invalid" />

使用
ng required
像这样验证复选框

<div ng-app="app" ng-controller="ctrl">
     <form name="myForm" ng-submit="submit()"  >
       <input type="radio" ng-model="roommate" value="roommate" ng-required="!roommate">  roommate <br/>
        <button type="submit">Submit</button>
      </form>
</div>

室友
提交

很容易…您可以在templateOptions中添加required:true。也有一个用于禁用的选项。你有没有看过网站上的任何例子?这样做很容易发现这一点

{
  key: 'radiobutton1',
  templateOptions: {
      required: true,
      label: 'Please make a selection',
      options: [{value: 'Steak', id: 'steak'}, {value: 'Lobster', id: 'lobster'}]
  }
}

谢谢你的回复,但表格不是硬编码的。更确切地说,它是从数据库中动态创建的。谢谢您的回复,但是表单不是硬编码的。相反,它是从DB动态创建的。由于您对表单没有控制权,您可以在js部分手动进行验证,然后将消息“注入”到对象中。文档中的required:true示例指的是type:input。是的,我尝试将此功能应用于单选按钮,但这样做时会出现“checker is not a function”错误。我是一个初学者,可能忽略了一些东西,但我在发帖前试着阅读文档。如果我的努力令你恼火,你不必回答我的问题。单选按钮也是如此。确保它在模板选项中。谢谢。仍然看到前面提到的错误。我已经更新了我的问题,以便更好地反映这个问题。我不太确定。我一直在单选按钮上使用required,从来没有遇到过问题。这似乎是ApiCheck的一个问题。通常,这些类型的错误发生在错误参数被传递到检查器时(即,它需要一个数组,而您传递了一个字符串,等等)。这是关于它的文档。