Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   при выборе из select'а данных сделать не активным input (https://javascript.ru/forum/misc/67299-pri-vybore-iz-select%27-dannykh-sdelat-ne-aktivnym-input.html)

Russia86rus 09.02.2017 09:17

при выборе из select'а данных сделать не активным input
 
Cмысл такой:
Имеется форма в которой
<form>
<select onchange="function1();">
<option>23</option>
</select>

<input type = text id='ddd'>
<input type = text>
<input type = text>

<script>
function1() {
if ($(this).val()=='23') {
$('#ddd').attr('disabled','disabled');
</script>

</form>

При выборе из комбобокса "23" - input c id ddd должен быть не активный!

Помоги разобраться! Что я не правильно делаю ... или может еще какие варианты посоветуете?

ksa 09.02.2017 09:26

Цитата:

Сообщение от Russia86rus
Имеется форма
...
Что я не правильно делаю

Начинаем учиться делать примеры и тестить их...

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
</script>
</head>
<body>
<form>
	<select onchange="function1();">
		<option>23</option>
	</select>
	<input type = text id='ddd'>
	<input type = text>
	<input type = text>
</form>
<script>
function1() { 
alert(this)
if ($(this).val()=='23') { 
	$('#ddd').attr('disabled','disabled'); 
};
</script>
</body>
</html>

Найди "что тут не работает и почему"... ;)

Russia86rus 09.02.2017 09:38

<select onchange="function1();">
<option value='23'>23</option>

function1() {
alert(this)
if ($(this).val()=='23') {
$('#ddd').attr('disabled','disabled');
}];

Значение в option не указал, и в скрипте фигурную скобку не поставил!

ksa 09.02.2017 10:24

Уже пошли какие-то подвижки... :yes:

Russia86rus 09.02.2017 11:41

немного другой код
 
<select id="sel">
<option value="1">Вариант 1</option>
<option value="2">Вариант 2</option>
<option value="3">Вариант 3</option>
</select>

<div class="text_go">
<input type="time" value="1" />
<input type="text" value="20" />
<input type="text" value="3" />
</div>


var sel= document.querySelector('#sel'),
		text_go = document.querySelectorAll('.text_go input');
function option () {
	switch (sel.value) {
  	case '1':
    	text_go[0].disabled = '';
    	text_go[1].disabled = 'disabled';
      text_go[2].disabled = 'disabled';
    	break;
     case '2':
    	text_go[0].disabled = 'disabled';
    	text_go[1].disabled = '';
      text_go[2].disabled = 'disabled';
    	break;
      case '3':
    	text_go[0].disabled = 'disabled';
    	text_go[1].disabled = 'disabled';
      text_go[2].disabled = '';
    	break;
  }
}
option();
sel.addEventListener('change', function () {option();});



Я судорожно извиняюсь!!
Почему у меня в онлайн инструменте https://jsfiddle.net/ работает код, а на моем компьютере нет ?? я так подозреваю, что нужно библиотеку какую то цеплять ... может кто подскажет ??

ksa 09.02.2017 14:38

Цитата:

Сообщение от Russia86rus
может кто подскажет ?

У тебя продолжается проблема с изготовление тестовых примеров...

У меня все работает. ;)

<select id="sel">
	<option value="1">Вариант 1</option>
	<option value="2">Вариант 2</option>
	<option value="3">Вариант 3</option>
</select>
<div class="text_go">
	<input type="time" value="1" />
	<input type="text" value="20" />
	<input type="text" value="3" />
</div>
<script type='text/javascript'>
var sel= document.querySelector('#sel'),
		text_go = document.querySelectorAll('.text_go input');
function option () {
	switch (sel.value) {
  	case '1':
    	text_go[0].disabled = '';
    	text_go[1].disabled = 'disabled';
      text_go[2].disabled = 'disabled';
    	break;
     case '2':
    	text_go[0].disabled = 'disabled';
    	text_go[1].disabled = '';
      text_go[2].disabled = 'disabled';
    	break;
      case '3':
    	text_go[0].disabled = 'disabled';
    	text_go[1].disabled = 'disabled';
      text_go[2].disabled = '';
    	break;
  }
}
option();
sel.addEventListener('change', function () {option();});
</script>

ksa 09.02.2017 14:39

Цитата:

Сообщение от Russia86rus
sel.addEventListener('change', function () {option();});

Это перебор. Достаточно такого
sel.addEventListener('change', option);

Russia86rus 11.02.2017 07:46

Спасибо) Все работает)


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