2016-10-03 72 views
0

我有一个select2 JavaScript来执行我的标记。客户决定他们想要有空间。正如你知道的空间毁了一切,所以我们与下划线妥协,但我们想用一个下划线替换所有的空间,以防万一不是每个人都遵循指示。 因此,我添加了一点JavaScript,但是当我将新值保存到其分配的属性时,select2会中断,并且它似乎是破坏进程的两行代码。Select2标签替换带下划线的空格

有没有其他的方法来写这两行?

我的JavaScript(我将标志着被搞乱了程序的那些))

<script> 

    $("#tags").select2({ 
     placeholder: "Add Tag(s)...", 
     tags: true 
    }); 

    $('#tags').change(function() { 
     var self = this; 
      $(self).find('option').each(function() { 
       var value = $(this).val(); 
       var text = $(this).text(); 
       var newValue = value.split(' ').join('_'); 
       var newText = text.split(' ').join('_'); 
       $(this).val(newValue); // This line overrides the tag manually input before it. 
       $(this).text(newText); 
        $('.select2-selection__choice').each(function() { 
         var title = $(this).attr('title'); 
         var newTitle = title.split(' ').join('_'); 
         $(this).val(newTitle) 
         $(this).text(newTitle); //This line deletes the x in the tags 
        }); 
       }); 
      }); 
     }); 
</script> 

回答

0

如果您需要更改选择字段更改文本和值,你可以做这样的:

$(function(){ 
    $('#tags').change(function() { 
     $(this).find('option').each(function() { 
      var value = $(this).val(); 
      var text = $(this).text(); 
      $(this).val(value.split(' ').join('_')) 
      $(this).text(text.split(' ').join('_')) 
     }); 
    }); 
}); 

这里有一个plunkr demo

+0

谢谢你的回答。不过,它仍然搞乱我的标签。如果我输入一个二。它用one_two代替它,但是我想要另外一个标签,例如三个四,one_two替换三个四。它发生在我所尝试过的一切。 – BlowFish

+0

你可以编辑plunkr来显示发生了什么。我试过了,但对我来说效果不错,请看这里:https://plnkr.co/edit/mipw0f113sagh0WcRk16?p=preview – qais

0

有一个在选择二是停止这个被完成的错误。虽然它确实有效,但由于这个错误,它不能正常工作。然而,我将会把Qais的问题标上正确的答案。

谢谢