onclick clone送货地址字段值到帐单地址字段值

时间:2015-04-07 07:00:22

标签: javascript jquery

嗨,我有这个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); 
           }

但没有成功。 也许有人可以帮我吗? 谢谢!

2 个答案:

答案 0 :(得分:0)

这将完成你的工作。 我已经添加了一个检查,表明要复制的元素是选择。如果是select元素, 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());   
        }

答案 1 :(得分:0)

解决方案是toElement.val(fromElement.val()).trigger("liszt:updated");这适用于使用selected.js

的表单中的所有元素