2015-06-17 25 views
8

Tôi đang cố gắng kết hợp một hàm với trường chọn khi một mục nào đó được dán vào nó (nó trông giống như trường nhập sau khi cho phép nhiều kiểu và select2: matcher/tokenize) trong IE nó luôn luôn cắt bớt bất kỳ văn bản dán nào có chứa một ký tự dòng mới.Cách đặt giá trị của một lựa chọn cho phù hợp & mã thông báo jquery

<form method="POST" action="/run" class="ui-widget" onsubmit=" return confirmSubmit(this, 'run',true) "> 
    Editor: 
    <select name="editor" id="editor" multiple style="width: 200px"> 
     <option>ALL</option> 
    </select> 
     <input type="submit" value="Submit"> 
</form> 

bind('paste') dường như không làm việc trên một đối tượng <select> vì vậy tôi đã phải sử dụng bind('change')

var unitIds = ["Red","Yellow","Green"]; 

$.each(unitIds, function(i, f) { 
     $('select[name="editor"]').append($('<option>').text(f)); 
    }); 

$('#pastefromclip').select2({ 
    matcher: function(term, text) { 
        return text.toUpperCase().indexOf(term.toUpperCase()) === 0; 
       }, 
    tokenizer: function(input, selection, callback) { 
        if (input.indexOf(" ") < 0) return; 
        var parts = input.split(" "); 
       for (var i = 0; i < parts.length; i++) { 
        var part = parts[i]; 
        if(part.length > 0){ 
         if (unitIds.indexOf(part) == -1) { 
          alert('Invalid fields: ' + part); 
         } else { 
          callback({ 
           id: part, 
           text: part 
           }); 
          } 
         } 
        } 
       } 
}); 
$('#editor').bind('change', function (e) { 
      var clipped = window.clipboardData.getData('Text'); 
      clipped = clipped.replace(/(\r\n|\n|\r)/gm, " "); //replace newlines with spaces 
      //$(this).val(clipped); // this doesn't seem to work 
      var element = document.getElementById('editor'); 
      element.value = clipped; // doesn't seem to work either 
      return false; //cancel the pasting event 
     }); 
  1. Sao chép và dán đoạn mã sau vào lĩnh vực chọn:
    Red
    Vàng

  2. Nó chỉ dán 'Đỏ' và hiển thị đối tượng phù hợp. Nó không nhận ra hàm thay đổi cho đến khi tôi chọn đối tượng phù hợp đó và nó đang được mã hóa.

  3. Sau khi nhận ra thay đổi đó, nó chạy qua clipboardData và thấy cả Đỏ và Vàng nhưng không thể gán trường chọn với dữ liệu đó.

    <script src="https://rawgit.com/free-jqgrid/jqGrid/master/plugins/jquery.jqgrid.showhidecolumnmenu.js"></script> 
    <script type="text/javascript" src="javascript/jqGrid/jquery-1.8.3.js"></script> 
    <script type="text/javascript" src="javascript/jqGrid/jquery-ui-1.9.2.js"></script> 
    <script type="text/javascript" src="javascript/toastr.min.js"></script> 
    <script type="text/javascript" src="javascript/adminConsole.js"></script> 
    <script type="text/javascript" src="javascript/select2.min.js"></script> 
    <script type="text/javascript" src="javascript/moment.min.js"></script> 
    <script type="text/javascript" src="javascript/jqGrid/ui.multiselect.js"></script> 
    <script type="text/javascript" src="javascript/jqGrid/grid.locale-en.js"></script> 
    <script type="text/javascript" src="javascript/jqGrid/jquery.jqGrid.min.js"></script> 
    
+0

lý do bạn sử dụng 'select' tại sao không phải' loại đầu vào = 'văn bản''? Màu đỏ và màu vàng nên được thêm vào 'select' hoặc chỉ thay thế phần tử đầu tiên (* ALL *)? – befzz

+0

Chỉ dành cho InternetExplorer: http://jsfiddle.net/fxrzm3tL/48/ – befzz

+0

vì ban đầu tôi chỉ cần một hộp chọn, sau đó mở rộng đối tượng địa lý để có thể khớp và mã thông báo. Nó hoạt động hoàn hảo trong CHrome. Bây giờ tôi muốn tránh phải thay đổi tất cả các chức năng đã chọn của tôi. – user3710760

Trả lời

0

TokenSeparators sử dụng cho nhiều đầu vào

See it Action

$(".js-example-tokenizer").select2({ 
    tags: true, 
    tokenSeparators: [',', ' '] 
}) 

Vui lòng tham khảo phần tokenization tự động trong Select2 Tokenization

Ngoài ra khi sao chép dán các tùy chọn (đỏ xanh) don đừng quên nối thêm "," cuối cùng

+0

mở liên kết của bạn và dán văn bản "ABC" (với ký tự dòng mới thay vì không gian) nó bị cắt tại A trong IE – user3710760

Các vấn đề liên quan