Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS:仅当选中复选框时,才将一个输入框的值复制到另一个输入框_Javascript_Jquery_Angularjs - Fatal编程技术网

Javascript AngularJS:仅当选中复选框时,才将一个输入框的值复制到另一个输入框

Javascript AngularJS:仅当选中复选框时,才将一个输入框的值复制到另一个输入框,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我在购物车上工作,人们需要在同一页上填写两个类似的表格。第一种形式是账单地址,第二种形式是发货地址。两种表单都包含类似的输入元素,例如: a) 账单地址:姓名、地址第1行、地址第2行、国家/地区、电话等 b) 发货地址:姓名、地址行1、地址行2、国家/地区、电话等 有一个复选框显示“检查账单地址和发货地址是否相同”。因此,如果只选中复选框,我需要将数据从帐单地址复制到发货地址,即使用户更改了帐单地址,也应该自动将更改复制到发货地址 我需要使用Angular JS来实现这一点。有人能告诉我怎么做吗

我在购物车上工作,人们需要在同一页上填写两个类似的表格。第一种形式是账单地址,第二种形式是发货地址。两种表单都包含类似的输入元素,例如:

a) 账单地址:姓名、地址第1行、地址第2行、国家/地区、电话等

b) 发货地址:姓名、地址行1、地址行2、国家/地区、电话等

有一个复选框显示“检查账单地址和发货地址是否相同”。因此,如果只选中复选框,我需要将数据从帐单地址复制到发货地址,即使用户更改了帐单地址,也应该自动将更改复制到发货地址

我需要使用Angular JS来实现这一点。有人能告诉我怎么做吗


(编辑:我是Angular Js新手,不知道从哪里开始)

这个想法就像你可以为你的BillingAddress和ShippingAddress使用两个范围变量一样

然后,您可以在复选框中使用“ng checked”属性来获取选中的事件,如果与复选框关联的模型为true,则必须用BillingAddress AddressLine2替换ShippingAddressLine2

    <div ng-controller="MyCtrl">
    <div>
      Billing address
      Address <input type="text" ng-model="billing.Address" />
    </div>
      <div>
      Shipping address
      Address <input type="text" ng-model="Shipping.Address" />
    </div>
    <div>
      Shipping address is same as billing address
      <input type="checkbox" ng-click="CheckClicked()" ng-model="SameAddress" />
    </div>
    </div>

您可以在表单中定义两个部分。一个用于发货地址,另一个用于账单地址。在帐单地址中,为相同地址添加复选框

然后您需要处理以下情况

  • 如果选中复选框,则将发货地址复制到帐单地址对象
  • 如果选中复选框,则禁用编辑帐单地址
  • 如果使用复选框修改了shipping address中的任何字段,请将其复制到billing address对象
这是一个例子

示例-示例-示例32-生产
发货地址名称:

街道:
城市:
说明:
引脚:
移动:

帐单地址名称:
街道:
城市:
说明:
引脚:
移动:
与发货地址相同
angular.module('formExample',[]) .controller('ExampleController',['$scope',function$scope){ $scope.sa={}; $scope.ba={}; $scope.update=函数(sa){ $scope.ba=angular.copy($scope.sa); }; }]);
试试这个:

<input type="text" ng-model="box1">
 <input type="text" ng-model="box2">
 <input type="checkbox" ng-model="active" ng-change="copyIt(active)">

给你。我将为您提供一个简化的解决方案

//代码在这里
var myApp=angular.module('myApp',[]);
myApp.controller('FooCtrl',函数($scope){
$scope.billing={};
$scope.shipping={};
$scope.copyAddresses=函数(){
if($scope.copyAddress){
$scope.shipping=angular.copy($scope.billing);
}
}
$scope.$watch('billing',函数(newValue){
如果(新值){
$scope.copyAddresses();
}
},对);
});

你好,普朗克!
地址1
地址2
城市
检查账单地址和发货地址是否相同
地址1
地址2
城市

到目前为止您尝试了什么?想在这里雇佣一名开发人员吗?@PraveenPrasannan hahaha,实际上我是Angular Js的新手,不知道从哪里开始..你已经有一些代码了吗?@JiaJian all php,html代码已经准备好了,但不是angular js代码,因为我不知道如何开始。在ng change上调用这里的方法比在ng click上调用更好。我实现了它,它工作正常,但是当页面加载时,它会从输入元素中删除我的默认值。在html或内部控制器中,默认值在哪里?理想情况下,在控制器内部,您应该使用默认值初始化ng模型。例如$scope.sa={name:'Johnny'};什么不起作用?你是怎么运作的?我的意思是,您是否将其粘贴到一个简单的HTML页面中,然后在浏览器中打开该页面而不使用任何浏览器?如果您单击上面的
运行代码片段
,您可以在那里测试它本身。我使用了类似的方法,因为我更喜欢在控制器中使用$watch表达式
<input type="text" ng-model="box1">
 <input type="text" ng-model="box2">
 <input type="checkbox" ng-model="active" ng-change="copyIt(active)">
function MyCtrl($scope) {
   $scope.box1="";
   $scope.copyIt = function (active) {
     if(active){
        $scope.box2 = $scope.box1;
    }   else {
        $scope.box2="";
       }
  }
}