首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查时如何打印复选框的名称?

检查时如何打印复选框的名称?
EN

Stack Overflow用户
提问于 2016-07-21 10:26:27
回答 6查看 927关注 0票数 1

我正在制作一个任务管理工具,我的应用程序需要创建重复任务的能力,所以我试图模仿Google的“重复事件”菜单。这个:

如您所见,当您选中所需周中的天数时,“汇总”字段将自动更新所选天数。如何使用AngularJS或JQuery实现这一目标?

我使用ng-if完成的“摘要”选项的其余部分如下:

代码语言:javascript
复制
<div ng-if="recurrence_type === 'Weekly'">
    <div ng-if="recurrence_pattern === '1' && !recurrence_frequency && !recurrence_end">
        <p class="form-control-static"><b>Weekly</b></p>
    </div>
    <div ng-if="recurrence_pattern > '1' && !recurrence_frequency && !recurrence_end">
        <p class="form-control-static"><b>Every {{recurrence_pattern}} weeks</b></p>
    </div>
    <div ng-if="recurrence_pattern === '1' && recurrence_frequency && !recurrence_end">
        <p class="form-control-static"><b>Weekly, {{recurrence_frequency}} times</b></p>
    </div>
    <div ng-if="recurrence_pattern > '1' && recurrence_frequency && !recurrence_end">
        <p class="form-control-static"><b>Every {{recurrence_pattern}} weeks,
                                        {{recurrence_frequency}} times</b></p>
    </div>
    <div ng-if="recurrence_pattern === '1' && !recurrence_frequency && recurrence_end">
        <p class="form-control-static"><b>Weekly, until {{recurrence_end}}</b></p>
    </div>
    <div ng-if="recurrence_pattern > '1' && !recurrence_frequency && recurrence_end">
        <p class="form-control-static"><b>Every {{recurrence_pattern}} weeks, until
                                        {{recurrence_end}}</b></p>
    </div>
</div>

其中:

  • recurrence_pattern为周数;
  • recurrence_frequency是发生的次数;
  • recurrence_end是结束日期。

我的意思是,我可以像以前一样使用ng-if,但是我必须为每一个复选框的组合做一个ng-if,我会一整天都在这里。我打赌还有更简单的办法。

这是我的复选框代码:

代码语言:javascript
复制
<label class="col-sm-3 control-label">Repeat on:</label>
<label class="checkbox-inline">
    <input type="checkbox" id="monday" title="Monday" value="Monday"> M
</label>
<label class="checkbox-inline">
    <input type="checkbox" id="tuesday" title="Tuesday" value="Tuesday"> T
</label>
<label class="checkbox-inline">
    <input type="checkbox" id="wednesday" title="Wednesday" value="Wednesday"> W
</label>
<label class="checkbox-inline">
    <input type="checkbox" id="thursday" title="Thursday" value="Thursday"> T
</label>
<label class="checkbox-inline">
    <input type="checkbox" id="friday" title="Friday" value="Friday"> F
</label>
<label class="checkbox-inline">
    <input type="checkbox" id="saturday" title="Saturday" value="Saturday"> S
</label>
<label class="checkbox-inline">
    <input type="checkbox" id="sunday" title="Sunday" value="Sunday"> S
</label>

同样,我使用的技术是JavaScript和AngularJS,但由于我使用的是引导3,所以也有JQuery可用。

谢谢。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2016-07-21 10:38:59

您可以使用jQuery DOM选择器:checked,但不应该使用。因为这并不是真正的“角度方式”。

你想要的是这样的东西:

代码语言:javascript
复制
angular.module('app', [])

.controller('ctrl', function($scope) {
  $scope.values = [{
      value: 'test1'
  }, {
      value: 'test2'
  }, {
      value: 'test3'
  }];
  
  $scope.result = function() {
    return $scope.values.filter(function(el) { return el.checked; }).map(function(el) { return el.value; }).join(', ');  
  }
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="app">
  <div ng-controller="ctrl">
    <div ng-repeat="value in values"><input type="checkbox" ng-model="value.checked">{{ value.value }}</div>
  
    <div>
      {{ result() }}
    </div>
  </div>
</div>

票数 1
EN

Stack Overflow用户

发布于 2016-07-21 10:31:49

您可以使用$("input:checked").each()循环遍历所有复选框,然后使用.val()获得其值。

代码语言:javascript
复制
var answer = $("#SelectedAnswer").val();
$("input:checked").each(function () {
  var id = $(this).val();
  console.log(id);
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<label class="col-sm-3 control-label">Repeat on:</label>
<label class="checkbox-inline">
    <input type="checkbox" id="monday" title="Monday" value="Monday" checked> M
</label>
<label class="checkbox-inline">
    <input type="checkbox" id="tuesday" title="Tuesday" value="Tuesday"> T
</label>
<label class="checkbox-inline">
    <input type="checkbox" id="wednesday" title="Wednesday" value="Wednesday" checked> W
</label>
<label class="checkbox-inline">
    <input type="checkbox" id="thursday" title="Thursday" value="Thursday"> T
</label>
<label class="checkbox-inline">
    <input type="checkbox" id="friday" title="Friday" value="Friday" checked> F
</label>
<label class="checkbox-inline">
    <input type="checkbox" id="saturday" title="Saturday" value="Saturday"> S
</label>
<label class="checkbox-inline">
    <input type="checkbox" id="sunday" title="Sunday" value="Sunday"> S
</label>

票数 2
EN

Stack Overflow用户

发布于 2016-07-21 10:33:04

在单击复选框时,您可以获得该复选框的标题。

代码语言:javascript
复制
<input type="checkbox" id="monday" title="Monday" value="Monday">

$scope.summary = "";
$("input:checked").each(function () {
  var title = $(this).attr("title");
  $scope.summary+= title;
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38501706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档