Próbuję powiązać funkcję do pola wyboru, gdy coś jest wklejane do niego (wygląda jak pole wejściowe po dopuszczeniu wielu styl i select2: matcher/tokenize), ale w IE zawsze obcina każdy wklejony tekst, który zawiera nowy znak linii.Jak ustawić wartość wybierz, aby dopasować i tokenize 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')
nie wydają się działać na obiekcie <select>
więc musiałem użyć 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
});
Kopiuj i wklej następujący w wybranej dziedzinie:
Red
ŻółtyWkleja tylko "czerwony" i pokazuje dopasowany obiekt. Nie rozpoznaje funkcji zmiany, dopóki nie wybiorę tego dopasowanego obiektu i nie zostanie onkenowany.
Po rozpoznaniu tej zmiany przechodzi przez clipboardData i widzi zarówno czerwony, jak i żółty, ale nie może przypisać pola wyboru z tymi danymi.
<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>
dlaczego używasz 'select', dlaczego nie' input type = 'text''? Czerwony i żółty należy dodać do "wybierz" lub po prostu wymienić pierwszy element (* ALL *)? – befzz
Tylko InternetExplorer: http://jsfiddle.net/fxrzm3tL/48/ – befzz
, ponieważ pierwotnie potrzebowałem tylko pola wyboru, a następnie rozszerzyłem funkcję, aby móc dopasować i tokenizować. W CHROMie działało idealnie. Teraz chcę uniknąć konieczności zmieniania wszystkich wybranych funkcji. – user3710760