Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Блокировка определённых option у select (https://javascript.ru/forum/jquery/33832-blokirovka-opredeljonnykh-option-u-select.html)

mi.rafaylik 09.12.2012 22:35

Блокировка определённых option у select
 
В форме есть input и select.
Нужно, чтоб когда в myinput введёно определённое слово, например Казахстан то в myselect блокировались определённые option, например option 1 и option 4 становились disabled.
Как это реализовать с помощью jQuery? Догадываюсь только, что с помощью .attr("disabled", "disabled");

<form id="myform">

	<input id="myinput">

	<select id="myselect">
		<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>
	</select>

</form>

cmd 10.12.2012 00:30

<form id="myform">
	<input id="myinput">

	<select id="myselect">
		<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>
	</select>

</form>
 <script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$('#myselect option[value="2"], #myselect option[value="4"]').attr('disabled', 'disabled');
</script>

mi.rafaylik 10.12.2012 00:46

cmd
Свет пролили, благодарю )
Только в вашем примере options изначально заблокированы, а нужно, чтоб после ввода определённого слова.

cmd 10.12.2012 00:49

Вы просите готовый скрипт с нуля.

Это работа, и за нее обычно платят деньги.
Для таких сообщений предназначен раздел форума "Работа".

Если вы все же хотите, чтобы вам помогли - приложите какие-то усилия сами и задавайте вопросы по ходу дела.

mi.rafaylik 10.12.2012 01:15

Понял, извиняюсь.
Думаю должно быть как-то так, но не заработало:

<form id="myform">

    <input id="myinput">

    <select id="myselect">
        <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>
    </select>

</form>

$('#myinput [value="Кахазстан"]').change(function(){
	$('#myselect option[value="2"], #myselect option[value="4"]').attr('disabled', 'disabled');
	$('#myselect option[value="1"]').attr('selected', 'true');
});


только вместо .change конечно должно быть другое событие, определяющее соответствие введённого текста..

cmd 10.12.2012 03:55

keyup

mi.rafaylik 10.12.2012 15:28

.keyup .keypress
 
.keyup и .keypress проверяют нажатие конкретной клавиши или их сочетания. Получается, нужно проверить нажатые подряд (но не одновременно) нужные символы.

Serg_pnz 10.12.2012 16:23

$('#myinput').on('change keyup', function() {

mi.rafaylik 10.12.2012 17:35

Изначально я хотел получить значение input value по атрибуту .change, и если value соответствует, тогда событие.
Это было бы проще, т.к. нужно задавать не коды символов, а просто нужное слово

cmd 10.12.2012 18:21

$('#myinput').on('keyup', function() {
 alert($(this).val());
});


Часовой пояс GMT +3, время: 02:17.