2014-12-11 4 views
-2

У меня есть текстовое поле и выпадающее меню, как показано ниже.Отключить поле ввода при выборе другого в Angular JS

<section class="popupBody" data-ng-controller="PostController"> 
<form> 
    <input class="form-control col-sm-2" type="text" ng-model="buyer_cname" placeholder="Enter Buyer's Company Name" > 

    <label style="text-align:center;">Or,</label> 

    <select ng-model="buyer_cname_dropdown" required> 
      <option value="">Select the Buyer From Drop Down</option> 
      <option value="test1">Test1</option> 
      <option value="test2">Test2</option> 
      <option value="test3">Test3</option> 
    </select> 
</form> 
</section> 

Контроллер

function PostController($scope, $http, $cookieStore) { 
     var token = $cookieStore.get('token'); 
     var conId = $cookieStore.get('Cont_Id'); 
     var exId = $cookieStore.get('ex_Id'); 
     $scope.submit_pt = function() { 
      var buyer_name = $scope.buyer_cname; 
      var buyer_cname = $scope.buyer_cname_dropdown; 
      var seller_name = $scope.seller_cname; 
      var seller_cname = $scope.seller_cname_dropdown; 
      var description = $scope.description; 
      var amount = $scope.amount; 
      amount = (amount*100); 
      var p_types = $scope.post_typess; 
      $scope.post_transaction = []; 
      var post_tran = "http://www.smple.mobi/account/post_member_transaction.html?contactid="+conId+"&exchangeid="+exId+"&token="+token+"&buyerid=21458&seller_name=eBarter%20Master%20Account&desc="+description+"&amount="+amount+"&sellerid=2951"; 
    $http.get(post_tran) 
     .success(function(response) { 
      $scope.post_transaction = response; 
      console.log($scope.post_transaction); 
      $('.posted').show(); 
      $('.posted').html('Transaction Posted'); 
      $('.posted').delay(4000).fadeOut(); 
       $scope.description = ""; 
      }); 
    } 
} 

И текстовое поле и выберите будет возвращать то же значение, поэтому я хочу вариант, чтобы отключить выбор, когда пользователь вводит имя в текстовом поле и наоборот , Пользователь не должен указывать имя в текстовом поле и выбирать другой из раскрывающегося списка. Ваши мысли будут высоко оценены.

ответ

0

Я бы так сделал. Совершенно очевидно, Javascript, но должен делать работу, если я получить это право:

function input(object){ 
 
    if (object.id=="text"){ 
 
     if (object.value!=""){ 
 
     document.getElementById("select").style.visibility="hidden"; 
 
     document.getElementById("select").removeAttribute("required"); 
 
     document.getElementById("select").setAttribute("disabled",""); 
 
     document.getElementById("lable").style.visibility="hidden"; 
 
     }else{ 
 
     document.getElementById("select").style.visibility="visible"; 
 
     document.getElementById("lable").style.visibility="visible"; 
 
     document.getElementById("select").setAttribute("required",""); 
 
     document.getElementById("select").removeAttribute("disabled"); 
 
     } 
 
    }else{ 
 
     if (object.value!=""){ 
 
     document.getElementById("text").style.visibility="hidden"; 
 
     document.getElementById("lable").style.visibility="hidden"; 
 
     document.getElementById("text").removeAttribute("required"); 
 
     document.getElementById("text").setAttribute("disabled",""); 
 
     }else{ 
 
     document.getElementById("text").style.visibility="visible"; 
 
     document.getElementById("text").setAttribute("required",""); 
 
     document.getElementById("lable").style.visibility="visible"; 
 
     document.getElementById("text").removeAttribute("disabled"); 
 
     } 
 
    } 
 
    
 
    }
<form> 
 
    <input class="form-control col-sm-2" id="text" type="text" ng-model="buyer_cname" placeholder="Enter Buyer's Company Name" onkeyup="input(this)" required> 
 

 
    <label style="text-align:center;" id="lable">Or,</label> 
 

 
    <select ng-model="buyer_cname_dropdown" id="select" onchange="input(this)" required> 
 
      <option value="">Select the Buyer From Drop Down</option> 
 
      <option value="test1">Test1</option> 
 
      <option value="test2">Test2</option> 
 
      <option value="test3">Test3</option> 
 
    </select> 
 
</form>