ffx,
имитация зажатой клавиши Ctrl на мультиселекте
<!DOCTYPE HTML>
<html>
<head>
<title></title>
<meta charset="utf-8" />
<script src="https://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<select multiple="multiple" size="5" >
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
<select multiple="multiple" size="5">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
<script>
$(document).on('click','select[multiple]',function (e) {
var a = $(this).data('a') ? $(this).data('a') : [];
var b = $(this).val();
if (1 == b.length) {
for (var c = 0; c < a.length; c++) if (a[c] == b[0]) {
a.splice(c, 1);
$(this).val(a);
b.length = 0;
break
}
b.length && (a.push(b[0]), $(this).val(a))
}
$(this).data('a',$(this).val() || []) ;
e.preventDefault()
});
</script>
</body>
</html>