2014-07-14 50 views
-1

我有一個用於將郵寄地址設置爲郵寄地址的複選框,因此如果複選框被選中,則兩個值將始終相同,即使如果一個變化。到目前爲止,一旦框被選中,我可以獲得帳單地址以複製郵寄地址,但如果以後更改了值,則視圖不會更新。以下是我迄今爲止:我希望一個輸入字段的值始終等於另一個輸入字段

createcustomer.html:

<section class="mainbar" data-ng-controller="createcustomer as vm"> 
<div class="col-md-4"> 
          <label for="txtMailingAddress1">Address 1:</label> 
         </div> 
         <div class="col-md-8"> 
          <input type="text" id="txtMailingAddress1" name="txtMailingAddress1" value="" data-ng-model="vm.MailingAddress1" class="form-control FloatLeft" required /> 
         </div> 

<input type="checkbox" id="checkboxSameAddress" data-ng-model="vm.IsBillingMailing" data-ng-change="vm.copyMailingAddress()" />Check if billing address same as mailing address 

<div class="form-group"> 
         <div class="col-md-4"> 
          <label for="txtBillingAddress1">Address 1:</label> 
         </div> 
         <div class="col-md-8"> 
          <input type="text" id="txtBillingAddress1" name="txtBillingAddress1" data-ng-model="vm.BillingAddress1" class="form-control FloatLeft" required /> 
         </div> 
        </div> 
</section> 

createcustomer.js

function copyMailingAddress() { 
      if (vm.IsBillingMailing) { 
       vm.BillingAddress1 = vm.MailingAddress1; 
      } 
      else { 
       vm.BillingAddress1 = ''; 
      } 
     } 

回答

0

一切都搞錯了。你需要應用一些Angular。下面是做到這一點的一種方法:

http://jsfiddle.net/RpfNd/

var app = angular.module('shippingApp', []); 

app.controller('ShippingCtrl', function ($scope) { 
    $scope.mailing = { 
     first: 'Jon', 
     last: 'Doe', 
     address1: '123 Main Street' 
    }; 
    $scope.billing = {}; 
    $scope.billing_same = false; 

    $scope.$watch('billing_same',function(same_as_shipping) { 
     if (same_as_shipping) { 
      $scope.billing = $scope.mailing; 
     } 
     else { 
      $scope.billing = {}; 
     } 
    }); 
}); 
-1

編輯:沒有意識到問題涉及angularjs。沒有在標題或問題中說明。註釋如下後注意到標籤。 Mods請刪除這個答案,如果這個頁面沒用。由於

----------原來的答覆-------------

簡單的解決方案(我似乎也許還可以利用出於懶惰的),它是在我看來也更加安全。

如果「使用相同的郵寄地址」被選中,然後使用javascript禁用所有帳單地址欄/ jQuery的

然後當表單發佈,從而對其進行驗證(假設你使用PHP):

if(isset($_POST['checkboxSameAddress'])){ 
    $txtBillingAddress1 = $txtMailingAddress1; 
    $txtBillingAddress2 = $txtMailingAddress2; 
    //and so on 
} 

這樣你保證值是沒有用jQuery/JavaScript的操縱這麼多相同的

注:輸入複選框將要求這樣做的name屬性工作

+0

-1 PHP已經在具有內部數據綁定 – charlietfl

+0

@charlietfl我沒有意識到angularjs標籤的javascript框架沒有價值。發問者沒有說明問題或標題 – Onimusha

相關問題