Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.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 如何根据选择角度动态设置输入控件的最小值和最大值_Javascript_Html_Angularjs_Validation_Input - Fatal编程技术网

Javascript 如何根据选择角度动态设置输入控件的最小值和最大值

Javascript 如何根据选择角度动态设置输入控件的最小值和最大值,javascript,html,angularjs,validation,input,Javascript,Html,Angularjs,Validation,Input,我正在寻找一些通用的解决方案,根据下拉选择动态更新最小值和最大值。看看这个 如果用户选择: 小时-最小值和最大值应为1到24 分钟-最小值和最大值应为60到6000 秒-最小值和最大值应为3000到10000 我正在寻找一些解决方案,将更新的基础上选择输入控制绑定。它还应该更新验证消息。正在寻找一些通用的、可重用的解决方案,以便可以跨应用程序重用它 这是我的密码: HTML <div ng-app="app"> <div ng-controller="TimeControl

我正在寻找一些通用的解决方案,根据下拉选择动态更新最小值和最大值。看看这个

如果用户选择:

  • 小时-最小值和最大值应为1到24
  • 分钟-最小值和最大值应为60到6000
  • -最小值和最大值应为3000到10000
我正在寻找一些解决方案,将更新的基础上选择输入控制绑定。它还应该更新验证消息。正在寻找一些通用的、可重用的解决方案,以便可以跨应用程序重用它

这是我的密码: HTML

<div ng-app="app">
<div ng-controller="TimeController as vm">
    <label>Desired RPO</label>
    <div>
        <div class="input-group">
            <input type="number" class="form-control" name="desiredRPO" min="minvalue" max="maxvalue" step="1" />
            <div class="input-group-btn" style="display:inline-block;">
                <select class="form-control">
                    <option>HOURS</option>
                    <option>MINUTES</option>
                    <option>SECONDS</option>
                </select>
            </div>
        </div>
        <span>Please enter value between {{minvalue}} and {{maxvalue}}</span>
    </div>
</div>
看到答案了吗

在HTML中

<div ng-app="app">
   <div ng-controller="TimeController as vm">
   <form  name="vm.timeForm" novalidate>
      <div class="form-group">
        <label>Please select</label>
        <select class="form-control" ng-model="vm.selectedOption" ng-change="vm.updateMinMax()">
            <option value="hours">HOURS</option>
            <option value="minutes">MINUTES</option>
            <option value="seconds">SECONDS</option>
        </select>
      </div>
      <div class="form-group" ng-class="{ 'has-error' : vm.timeForm.desiredRPO.$invalid && !vm.timeForm.desiredRPO.$pristine }">
        <label>Desired RPO</label>
        <input type="number" name="desiredRPO" class="form-control" ng-model="vm.desiredRPO" ng-min="vm.minValue" ng-max="vm.maxValue">
        <p ng-show="vm.timeForm.desiredRPO.$invalid" class="help-block">Please enter value between {{vm.minValue}} and {{vm.maxValue}}</p>
      </div>
   </form>
  </div>

动态值有ng min ng max指令

<input ng-min="vm.diapason.min" ng-max="vm.diapason.max"/>

<select class="form-control" ng-model="vm.diapason" 
             ng-options="option.label for option in vm.restrictions">
 </select>

我刚刚创建了一个有效的Plunkr,希望能有所帮助

INDEX.html

    <!DOCTYPE html>
<html>

  <head>
    <link rel="stylesheet" href="style.css">
     <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
    <script src="script.js"></script>

  </head>

  <body ng-app="app">


    <div ng-controller="TimeController as vm">
      <label>Desired RPO</label>
      <div>
        <div ng-init="item=timings[0]" class="input-group">

          <input type="number" class="form-control" name="desiredRPO" min="{{item.min}}" max="{{item.max}}" step="1" />

          <div class="input-group-btn" style="display:inline-block;"> 

            <select
              ng-model="item" 
              ng-options="item.type for item in timings"></select>

          </div>
        </div>
        <span>Please enter value between {{item.min}} and {{item.max}}</span>

      </div>
      <h3>Requirement:    </h3>
      <h4>
      If user select :
      Hours - min and max value should be 1 to 24 <br>
      Minutes - min and max value should be 60 to 6000 <br>
      Seconds - min and max value should be 3000 to 10000 <br>
      </h4>
      <h6>
      I am looking for some solution which will update the binding at input control based on selection. Also it should update the validation message.
      Looking for some generic and reusable solution so It can be reused across application.
      </h6>
    </div>

  </body>

</html>

这是你需要的答案,用小提琴

var-app=angular.module('app',[]);
app.controller('TimeController',函数($scope){
var vm=$scope;
vm.update_values=函数(){
如果(vm.selected=='hours'){
vm.min=“1”;
vm.max=“24”;
}else if(vm.selected==='minutes'){
vm.min=“60”;
vm.max=“6000”;
}否则{
vm.min=“3000”;
vm.max=“10000”;
}
}
});

期望的RPO
请选择
小时
会议记录
秒
请输入介于{min}和{max}之间的值
要求:
如果用户选择:
小时-最小值和最大值应为1到24
分钟-最小值和最大值应为60到6000
秒-最小值和最大值应为3000到10000
我正在寻找一些解决方案,将更新的基础上选择输入控制绑定。它还应该更新验证消息。 正在寻找一些通用的、可重用的解决方案,以便可以跨应用程序重用它。
我们如何根据选择来更改它们。。你能更新提琴吗?我知道这种方法和其他方法不同,但不知何故,我不能用这种方法使它工作。如果可能的话,你能用你的方法更新一下吗?我把ng值弄错了一点。您可以使用ng选项参与我的方法。将编辑此帖子。请检查plunkr。。就设计而言,你可以相应地修改它。刚才看到了,但Pratik的答案看起来更相关。谢谢你的回答。
<input ng-min="vm.diapason.min" ng-max="vm.diapason.max"/>

<select class="form-control" ng-model="vm.diapason" 
             ng-options="option.label for option in vm.restrictions">
 </select>
vm.restrictions = [
  {
    label: 'HOURS',
    min: 1,
    max: 24
  },
  {
    label: 'MINUTES',
    min: 60,
    max: 6000
  },
  {
    label: 'SECONDS',
    min: 3000,
    max: 10000
  }
]
    <!DOCTYPE html>
<html>

  <head>
    <link rel="stylesheet" href="style.css">
     <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
    <script src="script.js"></script>

  </head>

  <body ng-app="app">


    <div ng-controller="TimeController as vm">
      <label>Desired RPO</label>
      <div>
        <div ng-init="item=timings[0]" class="input-group">

          <input type="number" class="form-control" name="desiredRPO" min="{{item.min}}" max="{{item.max}}" step="1" />

          <div class="input-group-btn" style="display:inline-block;"> 

            <select
              ng-model="item" 
              ng-options="item.type for item in timings"></select>

          </div>
        </div>
        <span>Please enter value between {{item.min}} and {{item.max}}</span>

      </div>
      <h3>Requirement:    </h3>
      <h4>
      If user select :
      Hours - min and max value should be 1 to 24 <br>
      Minutes - min and max value should be 60 to 6000 <br>
      Seconds - min and max value should be 3000 to 10000 <br>
      </h4>
      <h6>
      I am looking for some solution which will update the binding at input control based on selection. Also it should update the validation message.
      Looking for some generic and reusable solution so It can be reused across application.
      </h6>
    </div>

  </body>

</html>
var app = angular.module('app', []);
app.controller('TimeController', function($scope) {

var vm = this;
$scope.timings = [{type: 'HOURS', min: 1, max: 24}, 
{type: 'MINUTES', min: 60, max: 6000}, 
{type: 'SECONDS', min: 3000, max: 10000}];

});