【问题标题】:Align radio buttons vertically in Angular JS在Angular JS中垂直对齐单选按钮
【发布时间】:2020-03-31 09:04:03
【问题描述】:

我正在构建一种无线电问题类型。

这是查看代码:

<div class="form-group" ng-class="{ 'has-error': form.$submitted && form[field.id].$invalid }" ng-if="field.type === 'radio'">
   <label for="{{field.id}}">{{field.title}}</label>
   <br>
   <label ng-repeat="value in field.values">
      <input type="radio" id="{{field.id}}" name="field.id" ng-model="formData[field.id]" value="{{value.title}}"> {{value.title}}</label>
   <p class="form-group-note" ng-if="field.info" ng-bind="field.info"></p>

   <div ng-show="form.$submitted" ng-cloack>
      <span class="help-block" ng-show="form['{{field.id}}'].$error.required" ng-if="field.validations.required">Please enter a value, this field is required</span>
   </div>

   Selected Value is : {{formData[field.id]}}
</div>

我输入的 JSON 数据是

{
    "groups": [
        {
            "id": "4_2",
            "title": "Passport",
            "sections": [
                {
                    "id": "4_2_section",
                    "fields": [
                        {
                            "id": "select_id",
                                                        "title": "Select type of question",
                            "type": "select",
                            "info": "Always select \"Yes\"",
                            "size": {
                                "width": 100,
                                "height": 1
                            },
                            "validations": {
                                "required": true
                            },
                            "values": [
                                {
                                    "id": 0,
                                    "title": "Not Selected"
                                },
                                {
                                    "id": 1,
                                    "title": "Yes"
                                },
                                {
                                    "id": 2,
                                    "title": "No"
                                }
                            ]
                        }
                    ]

我得到的广播问题结果如下: 如您所见,所有单选按钮都是水平对齐的。 我如何垂直对齐它们?我的意思是一行上有一个单选按钮。

【问题讨论】:

  • 只需在标签上添加style="display:block;"即可。
  • 它以奇怪的格式破坏广播形式。
  • 请检查这是否是您想要的。 JSFiddle
  • 哦,不。我很抱歉。我把样式放错地方了:/这就是我要找的,谢谢!

标签: javascript html css angularjs


【解决方案1】:

为您的 HTML 添加样式

.display-block {
 display: block;
}

<label class="display-block" ng-repeat="value in field.values">
    <input type="radio" id="{{field.id}}" name="field.id" ng-model="formData[field.id]" value="{{value.title}}"> {{value.title}}
</label>

【讨论】:

    【解决方案2】:

    注意你想重复的内容。

    <ul>
    <li ng-repeat="value in field.values">
       <label for="{{field.id}}"> {{value.title}}</label>
       <input type="radio" id="{{field.id}}" name="field.id" ng-model="formData[field.id]" value="{{value.title}}">
    </li>
    </ul>
    

    【讨论】:

      【解决方案3】:

      将您的输入包装在 ul, li 中。下面的代码肯定会有所帮助:

      HTML:

      <form name="myForm" ng-controller="MyCtrl">
          <p>Favorite Beatle</p>
          <ul>
              <li ng-repeat="person in people">
                  <label>{{person.name}}
                      <input type="radio" ng-model="$parent.name" name="name" value="{{person.name}}" required />
                  </label>
              </li>
          </ul>
          <p><tt>myForm.$invalid: {{myForm.$invalid}}</tt></p>
          <button ng-disabled="myForm.$invalid">Submit</button>
      </form>
      

      JavaScript:

      function MyCtrl($scope) {
          $scope.people = [{
              name: "John"
          }, {
              name: "Paul"
          }, {
              name: "George"
          }, {
              name: "Ringo"
          }];
      }
      

      JsFiddle : https://jsfiddle.net/nikdtu/zp2131zw/

      【讨论】:

        猜你喜欢
        • 2020-07-23
        • 2019-11-17
        • 2019-01-28
        • 2018-01-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-25
        • 1970-01-01
        相关资源
        最近更新 更多