Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.01.2017, 00:38
kzn kzn вне форума
Новичок на форуме
Отправить личное сообщение для kzn Посмотреть профиль Найти все сообщения от kzn
 
Регистрация: 27.01.2017
Сообщений: 9

Замена значения атрибута
Доброго времени суток!
Прошу помочь новичку с вопросами, а именно:
Есть коды:
<div class= "form-group" ng-class="{error: myForm.type.$invalid}">
            <label> ОПФ </label>
            <div>
								<select class="form-control" onChange="Selected(this)" ng-model="agent.type" placeholder="Выберите ОПФ" name="type" required/>
									<option value="ИП">ИП</option>
									<option value="ЮЛ">ЮЛ</option>
								</select>
                <span ng-show="myForm.type.$dirty && myForm.type.$invalid" class="help-inline">Выберите ОПФ</span>
            </div>
        </div>

<div class= "form-group" id="innblock" ng-class="{error: myForm.inn.$invalid}">
            <label> ИНН </label>
            <div>
                <input name="inn" id="iinn" pattern="\d+" ng-model="agent.inn" type= "text" class= "form-control" maxlength="12" placeholder="ИНН" required/>
                <span ng-show="myForm.inn.$dirty && myForm.inn.$invalid" class="help-inline">Введите ИНН</span>
            </div>
        </div>

Как заменить значение атрибута, например maxlength чтобы было 10?
Пытался через функцию:
<script type="text/javascript">
      function Selected(a) {
				var label = a.value;
				if (label=="ИП") {
					document.getElementById("iinn").maxlength="12";
				} else {
					document.getElementById("iinn").maxlength="10";
				}
			}
    </script>

А вообще идея менять значения атрибутов, включать-выключать атрибуты(required disabled) в зависимости от условия выбора из select. Это возможно?
еще пробовал так:
<script type="text/javascript">
      function Selected(a) {
				var label = a.value;
				var ell = document.querySelector("div.form-group input[name=inn]");
				if (label=="ИП") {
					ell.maxlength="12";
				} else {
					ell.maxlength="10";
				}
			}
    </script>

и никак
возможно поменять только disabled.
Кстати, disabled влияет на required? т.е. если тег disabled, атрибут required должен выключится или нет?
У меня не выключается...
Ответить с цитированием
  #2 (permalink)  
Старый 27.01.2017, 02:08
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

https://learn.javascript.ru/attribut...tom-properties
Ответить с цитированием
  #3 (permalink)  
Старый 27.01.2017, 20:52
kzn kzn вне форума
Новичок на форуме
Отправить личное сообщение для kzn Посмотреть профиль Найти все сообщения от kzn
 
Регистрация: 27.01.2017
Сообщений: 9

Спасибо, посмотрел, но не помогло.

<div class= "form-group" id="kppblock" style='display: block;' ng-class="{error: myForm.kpp.$invalid}">
            <label> КПП </label>
            <div>
                <input name="kpp" id="kkpp" ng-model="agent.kpp" type= "num" min="0" max="999999999" class= "form-control" placeholder="КПП" required/>
                <span ng-show="myForm.kpp.$dirty && myForm.kpp.$invalid" class="help-inline">Введите КПП</span>
            </div>
        </div>


Пробовал как в документации, а именно в функции так:

kkpp.setAttribute(maxlength, 12);


и даже так:
<script type="text/javascript">
      function Selected(a) {
				var label = a.value;
				var el = document.querySelector("div.form-group input[name=kpp]");
				var ell = document.querySelector("div.form-group input[name=inn]");
				if (label=="ИП") {
					document.getElementById("kppblock").style.display='none';
					ell.setAttribute(maxlength, 12);
					el.disabled = true;
				} else {
					document.getElementById("kppblock").style.display='block';
					ell.setAttribute(maxlength, 10);
					el.disabled = false;
				}
			}

но не срабатывает maxlength. disabled и display срабатывают. Что не правильно?
script функции надо именно в body вставлять?

Последний раз редактировалось kzn, 27.01.2017 в 20:55.
Ответить с цитированием
  #4 (permalink)  
Старый 27.01.2017, 20:57
kzn kzn вне форума
Новичок на форуме
Отправить личное сообщение для kzn Посмотреть профиль Найти все сообщения от kzn
 
Регистрация: 27.01.2017
Сообщений: 9

elem.hasAttribute(name), elem я так понял это id?
получается можно менять атрибуты только у div?
Ответить с цитированием
  #5 (permalink)  
Старый 27.01.2017, 21:02
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Сообщение от kzn
ell.setAttribute(maxlength, 12);
кавычки где?
Ответить с цитированием
  #6 (permalink)  
Старый 27.01.2017, 21:18
kzn kzn вне форума
Новичок на форуме
Отправить личное сообщение для kzn Посмотреть профиль Найти все сообщения от kzn
 
Регистрация: 27.01.2017
Сообщений: 9

Из документации:
Цитата:
Пример ниже устанавливает атрибуты и демонстрирует их особенности.
Цитата:
elem.setAttribute('Test', 123); // (2) атрибут Test установлен
Цитата:
Мы можем записать в атрибут любое значение, но оно будет превращено в строку. Объекты также будут автоматически преобразованы.
Но вставка кавычек не помогло, пробежал по всем вариантам

Последний раз редактировалось kzn, 27.01.2017 в 21:25.
Ответить с цитированием
  #7 (permalink)  
Старый 27.01.2017, 21:26
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от kzn
elem.setAttribute('Test', 123); // (2) атрибут Test установлен
Это опровержение
Сообщение от рони
кавычки где?
?
Ответить с цитированием
  #8 (permalink)  
Старый 27.01.2017, 21:29
kzn kzn вне форума
Новичок на форуме
Отправить личное сообщение для kzn Посмотреть профиль Найти все сообщения от kzn
 
Регистрация: 27.01.2017
Сообщений: 9

Сообщение от laimas Посмотреть сообщение
Это опровержение ?
Не понял вопроса.
Кавычки вставил, не помогло
Ответить с цитированием
  #9 (permalink)  
Старый 27.01.2017, 21:32
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от kzn
Пробовал как в документации, а именно в функции так:
kkpp.setAttribute(maxlength, 12);
Сообщение от рони
кавычки где?
Сообщение от kzn
Из документации:
Цитата:
Пример ниже устанавливает атрибуты и демонстрирует их особенности.
Цитата:
elem.setAttribute('Test', 123); // (2) атрибут Test установлен
Это диалог или монолог? Похоже на опровержение.
Ответить с цитированием
  #10 (permalink)  
Старый 27.01.2017, 21:39
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

kzn,
<div class= "form-group" id="innblock" ng-class="{error: myForm.inn.$invalid}">
            <label> ИНН </label>
            <div>
                <input name="inn" id="iinn" pattern="\d+" ng-model="agent.inn" type= "text" class= "form-control" maxlength="12" placeholder="ИНН" required/>
                <span ng-show="myForm.inn.$dirty && myForm.inn.$invalid" class="help-inline">Введите ИНН</span>
            </div>
        </div>

<script>
    var ell = document.querySelector("div.form-group input[name=inn]");
    ell.setAttribute("maxlength", "10");
</script>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена значения в массиве nikto93i7 jQuery 5 18.08.2015 01:04
Замена значения в массиве nikto93i7 Общие вопросы Javascript 6 22.07.2015 06:03
замена значения атрибута frant32 jQuery 9 09.04.2012 16:21
Изменение значения атрибута. tiros jQuery 0 05.05.2011 00:13
Изменение значения атрибута. tiros jQuery 0 05.05.2011 00:06