当在AngularJS中选择一个输入字段时,如何禁用一个输入字段?(都使用相同的ngmodel)

2024-04-26 21:06:40 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我有两个输入字段。输入栏位A(下拉式)和输入栏位B。两者的值相同(ng型号相同)。我需要实现的是当用户从下拉按钮中选择一个选项时,第二个输入字段需要清除。我怎么能用AngularJS做到这一点呢?我对安古拉什很陌生。提前谢谢。在

<table align="center">
            <tr>
                <td>
                    <div class="input-group">
                        <span class="input-group-addon"><b>BB</b></span>
                        <input class="form-control" type="input" ng-model="final_data.bb" readonly>
                    </div>
                </td>

                    <p align="center" ng-show="processing['update_ms']" ng-class="processing['update_mst'].class" ng-cloak>
                        {{ processing['update_ms'].msg }}
                    </p>
                <td>
                    <div class="input-group">
                        <span class="input-group-addon"><b>InputA</b></span>
                        <select class="form-control" ng-change="get_mass(); disableMass() " ng-model="final_data.mas" ng-options="m as m for m in maslist" required ng-cloak>
                        </select> &nbsp;
                    </div>
                </td>
                <td>
                    <div class="input-group">
                        <span class="input-group-addon"><b>InputB*</b></span>
                        <input class="form-control" ng-disabled="isSelected" ng-model="final_data.mas" type="input">&nbsp;
                    </div>

                </td>
            </tr>
        </table>

Tags: addondivforminputdatamodelgroupupdate
2条回答

这没道理。在

ng-model是输入字段显示值的实时表示。{cd1>的文本值至少等于输入的文本。在

我也很难弄清楚你的用例。当用户在输入框中输入时,下拉列表会发生什么变化?在

如何为select input和input field创建两个不同的模型,并用nil初始化它们。所以你可以:

<select ng-model='selectModel' ng-disabled='inputModel'>
...
</select>

<input type='text' ng-model='inputModel' ng-disabled='selectModel' />

如果您需要通过更改选择和输入模型来更改原始模型:

html

^{pr2}$

js

$scope.originalModel = null;
$scope.syncModel = function (value) {
    $scope.originalModel = value;
}

更新: 如果要清除其他字段:

$scope.syncModel = function (value) {
    $scope.originalModel = value;
    //clearing
    if (value == $scope.inputModel) 
        $scope.selectModel = null;
    else
        $scope.inputModel = null;
}

脏但容易

更新: 您的代码:

        <table align="center">
            <tr>
                <td>
                    <div class="input-group">
                        <span class="input-group-addon"><b>BB</b></span>
                        <input class="form-control" type="input" ng-model="final_data.bb" readonly>
                    </div>
                </td>

                    <p align="center" ng-show="processing['update_ms']" ng-class="processing['update_mst'].class" ng-cloak>
                        {{ processing['update_ms'].msg }}
                    </p>
                <td>
                    <div class="input-group">
                        <span class="input-group-addon"><b>InputA</b></span>
                        <select class="form-control" ng-change="get_mass(); syncModels(selectModel) " ng-model="selectModel" ng-options="m as m for m in maslist" required ng-cloak ng-disabled="inputModel">
                        </select> &nbsp;
                    </div>
                </td>
                <td>
                    <div class="input-group">
                        <span class="input-group-addon"><b>InputB*</b></span>
                        <input class="form-control" ng-disabled="selectModel" ng-model="inputModel" ng-change="syncModels(inputModel)" type="input">&nbsp;
                    </div>

                </td>
            </tr>
        </table>

js

$scope.selectModel = null;
$scope.inputModel = null;
$scope.syncModels = function (value) {
   $scope.final_data.mas = value;
   //clearing
   if (value == $scope.inputModel) 
      $scope.selectModel = null;
   else
      $scope.inputModel = null;
}

相关问题 更多 >