你能帮忙解决这个逻辑问题吗?

时间:2016-04-22 09:12:14

标签: javascript html angularjs

example DEMO

您可以在链接上方看到代码。

实际上,我想根据按钮组的输入来控制所有输入形式,其名称与按钮组名称相同。

例如,我将值放在'First'按钮右侧的输入表单中,

同时,所有名为'First'的输入形式都应该改变

只需按钮组输入一个。

抱歉我的英语能力差,希望你能理解!!

<div ng-app="app" ng-controller="AppCtrl">
// list group
  <div>
    <ul>
      <li ng-repeat="item in items">
        <span>{{item.name}}</span>
        <input type="text" ng-model="price">
      </li>
    </ul>
  </div>


// button group
  <div>
    <ul class="list-btn">
      <li ng-repeat="btn in btns">
        <button>{{btn}}</button>
        <input type="text" ng-model="price_all">    
      </li>
    </ul>
  </div>  
</div>


angular.module('app', [])
.controller('AppCtrl', ['$scope', function ($scope) {
    $scope.items = [
    {id: 1, name: 'First'},
    {id: 2, name: 'Second'},
    {id: 3, name: 'Third'},
    {id: 4, name: 'First'},
    {id: 5, name: 'Second'},
    {id: 6, name: 'Third'},
    {id: 7, name: 'First'},
    {id: 8, name: 'Second'},
    {id: 9, name: 'Third'},
  ]

  $scope.btns = ['First', 'Second', 'Third'];

}])

1 个答案:

答案 0 :(得分:0)

由于ng-model重复insisde li标签,双向绑定只能在li标签内部工作,而不能在li标签之外。所以,你需要使用onkeyup事件。

fiddlder中的工作解决方案 - https://jsfiddle.net/fcoLmd2n/

在html中执行以下更改:

function Update(obj)
{
    var className = obj.getAttribute('btnType');
    var txtBoxElements = document.getElementsByClassName(className);
    for(var i=0;i<txtBoxElements.length;i++)
    {
        txtBoxElements[i].value= obj.value
    }
}

Js文件中的更改:

while (std::cin.fail())
{
    std::cout << "Wrong input! Please enter your number again: ";
    std::cin.clear();
    std::cin.ignore();
    std::cin >> credits;
}

使用Jquery进行优化