2017-08-03 55 views
0

我有3個單選按鈕,默認情況下選擇爲YES,我有一個提交按鈕。如果我將選擇任何一個作爲沒有按鈕,則提交按鈕將被禁用。每三個按鈕一次是肯定的,然後保存按鈕啓用,否則禁用。當我第一次點擊時,單選按鈕不會改變數值

我的代碼寫在我的項目中。

app 
 
    .controller(
 
    "MainCtrl", 
 
    function($scope, $http) { 
 
     $scope.formModel = { 
 
     internationalClient: 0, 
 
     isConfidential: 0, 
 
     isModificationLossRecog: 0, 
 
     idenComplianceForFinDifficulty: 1, 
 
     idenComplianceForConcession: 1, 
 
     idenComplianceForModificationOrRefin: 1 
 
     }; 
 

 
     $(".radioBtn") 
 
     .click(
 
      function() { 
 
      $("#save").attr("disabled", true); 
 

 
      $scope.forbraranceJson1 = angular.toJson(
 
       $scope.formModel, false); 
 
      console.log($scope.forbraranceJson1); 
 
      var x1 = JSON.parse($scope.forbraranceJson1); 
 

 
      console.log("11 " + x1.idenComplianceForModificationOrRefin); 
 
      console.log("22 " + x1.idenComplianceForFinDifficulty); 
 
      console.log("33 " + x1.idenComplianceForFinDifficulty); 
 
      if (x1.idenComplianceForModificationOrRefin == 1 && x1.idenComplianceForConcession == 1 && x1.idenComplianceForFinDifficulty == 1) { 
 
       $("#save").attr("disabled", false); 
 
       $scope.measureCheckbomsg = ""; 
 
      } else { 
 
       //$("#save").attr("disabled", true); 
 
       $scope.measureCheckbomsg = "Please select all Forbearance requirements as YES"; 
 
      } 
 
      });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.min.js"></script> 
 
<html ng-app="App"> 
 

 
<body ng-controller="MainCtrl"> 
 
    <form name="theForm" novalidate="novalidate"> 
 

 
    <input type="radio" ng-model="formModel.isModificationLossRecog" ng-value="1">Yes 
 
    <input type="radio" ng-model="formModel.isModificationLossRecog" ng-value="0" ng-checked="true">No 
 

 

 
    <input type="radio" class="radioBtn" ng-model="formModel.idenComplianceForFinDifficulty" ng-value="1" ng-checked="true">Yes 
 
    <input type="radio" ng-model="formModel.idenComplianceForFinDifficulty" class="radioBtn" ng-value="0">No 
 

 
    <input type="radio" ng-model="formModel.idenComplianceForConcession" ng-value="1" class="radioBtn" ng-checked="true">Yes 
 
    <input type="radio" class="radioBtn" ng-model="formModel.idenComplianceForConcession" ng-value="0">No 
 

 
    <button class="btn btn-success btn-sm" id="save" ng-click="saveRegistration(theForm.$valid)">Save</button> 
 
    </body> 
 
</html>

當我點擊第一次任何單選按鈕的值不改變1爲0。如果我第二次點擊,那麼它的值將在JSON中改變。

+1

首先你正在使用$( '')jQuery的。儘量避免點擊。並在收音機中使用ng-change指令。 –

+0

感謝您的幫助。我改變了ng-change,現在它爲我工作 –

回答

0

在您的示例中,您不應使用單選按鈕,而應使用複選框。當您想要在多個值之間進行選擇時,單選按鈕更加有用。在你的情況下,它更像是一個布爾值,所以複選框似乎是一個更好的選擇。

然後在你的控制器使用角 「NG事件」 之類ng-clickng-change

<input type="checkbox" ng-model="formModel.idenComplianceForConcession" ng-click="clickedCallback"/> 

$scope.clickedCallback = function() { 
console.log(formModel.idenComplianceForConcession); 
} 
相關問題