Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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 单击克隆发货地址字段值到帐单地址字段值_Javascript_Jquery - Fatal编程技术网

Javascript 单击克隆发货地址字段值到帐单地址字段值

Javascript 单击克隆发货地址字段值到帐单地址字段值,javascript,jquery,Javascript,Jquery,嗨,我有这个javascript代码 copyAddress : function(swapMode, container){ var thisInstance = this; var addressMapping = this.addressFieldsMappingInModule; if(swapMode == "false"){ for(var key in addressMapping) { var fromElement

嗨,我有这个javascript代码

copyAddress : function(swapMode, container){
    var thisInstance = this;
    var addressMapping = this.addressFieldsMappingInModule;
    if(swapMode == "false"){
        for(var key in addressMapping) {
            var fromElement = container.find('[name="'+key+'"]');
            var toElement = container.find('[name="'+addressMapping[key]+'"]');
            toElement.val(fromElement.val());
        }
    } else if(swapMode){
        var swappedArray = thisInstance.swapObject(addressMapping);
        for(var key in swappedArray) {
            var fromElement = container.find('[name="'+key+'"]');
            var toElement = container.find('[name="'+swappedArray[key]+'"]');
            toElement.val(fromElement.val());   
        }
如果元素是输入文本字段,则此代码工作正常 但不适用于“选择”下拉列表元素 我的表单只有输入文本和选择字段,我想修改这段代码来处理选择字段

我对代码做了如下更改

          if(!(fromElement).is("select")) {
            toElement.val(fromElement.val());
          }else{
            var $options = $(fromElement+" > option").clone();
            toElement.append($options); 
           }
但是没有成功。 也许有人能帮我? 谢谢

这将完成您的工作。 我添加了一个检查,检查要复制的元素是否为选择。在选择元素的情况下,From元素的所有选项将被复制并附加到to元素

试试看,万一有什么问题就告诉我

   copyAddress : function(swapMode, container){
    var thisInstance = this;
    var addressMapping = this.addressFieldsMappingInModule;
    if(swapMode == "false"){
        for(var key in addressMapping) {
            var fromElement = container.find('[name="'+key+'"]');
            var toElement = container.find('[name="'+addressMapping[key]+'"]');
          if(fromElement[0].tagName == "Select")
            {
              toElement.find('option').remove();
              toElement.append(fromElement.find('option'));
            }
            toElement.val(fromElement.val());

        }
    } else if(swapMode){
        var swappedArray = thisInstance.swapObject(addressMapping);
        for(var key in swappedArray) {
            var fromElement = container.find('[name="'+key+'"]');
            var toElement = container.find('[name="'+swappedArray[key]+'"]');
          if(fromElement[0].tagName == "Select")
            {
              toElement.find('option').remove();
              toElement.append(fromElement.find('option'));
            }
            toElement.val(fromElement.val());   
        }

解决方案是
toElement.val(fromElement.val()).trigger(“liszt:updated”)这对表单中使用selected.js的所有元素都有效

我只是尝试了一下,没有成功。我忘了说表单select use selected.jsI也在
code
toElement.append(fromElement.find('option'))之后添加了这个;toElement.trigger(“已选择:已更新”)<代码>代码
如果我将此'if(来自元素[0]。标记名==“select”){alert('select');}否则{alert('textbox');}'我收到警报textbox我将标记名==“select”替换为标记名==“select”现在我可以在选择时实现,但选项保持不变