簡體   English   中英

更改控制器后未選擇單選按鈕值

[英]Radio button value not selected after changing in controller

更新控制器中的值后,單選按鈕出現問題。 它具有Y / N值,當我加載信息時,默認情況下顯示為“ N”,但顯示為N,但是如果我更改為YES,我將進行一些驗證,並且必須將其更改回NO(我為該值賦了值)在控制器中),但未選中html,實際上它們都不是

<div ng-app="app" ng-controller="MainCtrl">
    <label class="radio-inline">
      <input type="radio" name="radioAceptada" ng-model="accepted" value="Y" ng-change="changeValue()">Yes
    </label>
    <label class="radio-inline">
      <input type="radio" name="radioAceptada" ng-model="accepted" value="N" ng-change="changeValue()">No
    </label>
  </div>

例子

我不確定這是否是正確的解釋,但我認為值的更新速度如此之快,以至於沒有時間更新UI。 我遇到了類似的問題,並通過添加0.5秒的延遲解決了該問題。

  $scope.changeValue = function() {
    if ($scope.accepted === 'Y') {
      alert("Error");
    $timeout(function() { 
      $scope.accepted = 'N';
    }, 500);
    }
  };

工作柱塞

您必須在視圖中使用ng-value並為其分配返回函數。

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8" />
  <title>AngularJS Plunker</title>
  <script>
    document.write('<base href="' + document.location + '" />');
  </script>
  <link rel="stylesheet" href="style.css" />
  <script data-require="angular.js@1.2.x" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.17/angular.min.js" data-semver="1.2.17"></script>
  <script src="script.js"></script>
</head>

<body>
  <div ng-app="app" ng-controller="MainCtrl">
    <label class="radio-inline">
      <input type="radio" name="radioAceptada0" ng-model="accepted" ng-value='change()' >Yes
    </label>
    <label class="radio-inline">
      <input type="radio" name="radioAceptada1" ng-model="accepted" value='N 'ng-value="N" >No
    </label>
  </div>
</body>

</html>

您的控制器:

var app = angular.module('app', []);
app.controller('MainCtrl', function($scope) {
  $scope.accepted = 'N';
  $scope.change=function(){
    if(validation is apply )
    retrun 'Y';
    else 
    {
      alert("somting you want show");
      return 'N';
    }


      alert("x")
      return 'Y';
  }

});

很抱歉,我想念您的問題。 這是代碼,即使選中Y復選框,也要選擇N,

  <input type="radio" name="rdly" ng-model="mdly" value="Y" ng-change="changeValue(mdly)">Yes

  <input type="radio" name="rdln" ng-model="mdln" value="N" ng-change="changeValue(mdln)">No

您必須指定其他名稱才能工作。

$scope.mdln = 'N';
  $scope.changeValue = function() {
    if ($scope.mdly === 'Y') {         
            alert('Change back to N');          
            $scope.mdly = '';   
            $scope.mdln = 'N';
    }       
  };

我對JSfiddle進行了更改: 在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM