javascript - 关于复选框显示问题。
巴扎黑
巴扎黑 2017-04-11 11:56:48
[JavaScript讨论组]

如何选择一个或者多个复选框的时候,数字显示在p中呢,思路比较乱,谢谢!





无标题文档


123
456
789
563
156
110

巴扎黑
巴扎黑

全部回复(6)
伊谢尔伦
<!doctype html>
<html>

<head>
  <meta charset="utf-8">
  <title>无标题文档</title>
</head>

<body>
  <input type="checkbox" name="test" value="123">123
  <br/>
  <input type="checkbox" name="test" value="456">456
  <br/>
  <input type="checkbox" name="test" value="789">789
  <br/>
  <input type="checkbox" name="test" value="563">563
  <br/>
  <input type="checkbox" name="test" value="156">156
  <br/>
  <input type="checkbox" name="test" value="110">110
  <br/>
  <p style="width:290px; height:50px; border:1px solid;">
  </p>
  <script src="jquery.min.js"></script>
  <script type="text/javascript">
  //改这些复选框统一的name属性,比如name="test",加上对应的value值
  $('input[name=test]').change(function() {
    var arr = []
    $('input[name=test]:checked').each(function(i, v) {
        arr.push($(v).val())
    })
    $('p').html(arr.join(','))
  })
  </script>
</body>

</html>
黄舟

使用angular来控制:

  1. 在每一个复选框上添加一个点击事件

  2. 在controller里定义点击事件,接收复选框的值作为参数,每次加在一个数组中

  3. 使用ng-bind将数组绑定到p中


    <!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>无标题文档</title>
    //请换成本地或联网可用的angular库
    <script src="node_modules/angular/angular.js"></script>
</head>
<body ng-app="testApp" ng-controller="testCtrl as ctrl">
<input type="checkbox" ng-click="ctrl.addValue(123)">123<br/>
<input type="checkbox" ng-click="ctrl.addValue(456)">456<br/>
<input type="checkbox" ng-click="ctrl.addValue(789)">789<br/>
<input type="checkbox" ng-click="ctrl.addValue(563)">563<br/>
<input type="checkbox" ng-click="ctrl.addValue(156)">156<br/>
<input type="checkbox" ng-click="ctrl.addValue(110)">110<br/>

<p style="width:290px; height:50px; border:1px solid;" ng-bind="ctrl.numList">
</p>

<script>
    angular.module("testApp", [])
            .controller("testCtrl", [function () {
                var self = this;
                self.numList = [];
                self.addValue = function (num) {
                    self.numList += num;
                }
            }]);
</script>
</body>
</html>

迷茫

用Vue实现超简单:

<p id='test'>
    <input type="checkbox" v-model="checkedNums" value='123'>123<br/>
    <input type="checkbox" v-model="checkedNums" value='456'>456<br/>
    <input type="checkbox" v-model="checkedNums" value='789'>789<br/>
    <p style="width:290px; height:50px; border:1px solid;" ng-bind="ctrl.numList">
        {{ checkedNames | json }}
    </p>

</p>
<script> 
  new Vue({
  el: 'test',
  data: {
    checkedNames: []
  }
})
</script>
黄舟

通过jquery给p来设text

迷茫

思路如下:

  1. 监听checkbox点击事件;

  2. 判断是否选中,获取选中checkbox的值;

  3. 往p中追加内容;

巴扎黑

在复选框的value值哪里写上对应的值就比较方便选取后写入p了,不然就得从下一节点的nodevalue值考虑,麻烦一点

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号