Замена значения атрибута
Доброго времени суток!
Прошу помочь новичку с вопросами, а именно: Есть коды:
<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>
и никак :( :help: возможно поменять только disabled. Кстати, disabled влияет на required? т.е. если тег disabled, атрибут required должен выключится или нет? У меня не выключается... |
|
Спасибо, посмотрел, но не помогло.
<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 вставлять? |
elem.hasAttribute(name), elem я так понял это id?
получается можно менять атрибуты только у div? |
Цитата:
|
Из документации:
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
|
Цитата:
Кавычки вставил, не помогло |
Цитата:
Цитата:
Цитата:
|
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>
|
Цитата:
|
Цитата:
|
А required возможно удалить?
Код:
el.removeAttribute("required");пробовал так тоже: Код:
el.setAttribute("required", false); |
Цитата:
|
el.setAttribute("required", false); - так не получится, это булево свойство.
<style>
input:required {
background: #f00;
}
</style>
<input required="" /><input type="button" value="Remove" onclick="this.previousSibling.removeAttribute('required')"/>
<br/>
<input required="" /><input type="button" value="Set Not" onclick="this.previousSibling.required=!1"/>
|
laimas,
забавно изменяется свойство required после removeAttribute('required') в ie, css сработает только при изменении фокуса. можно сделать
input[required] {
background: #f00;
}
тогда это незаметно. |
Да, есть такое, но для примера и так сойдет, тут пользователей ишака наверное и не найти. )
А я обычно так поступаю, чтобы пользователь видел последствия:
input:invalid {
}
input:valid {
}
при этом при удалении свойства и ишак должен реагировать нормально. |
Цитата:
|
| Часовой пояс GMT +3, время: 04:29. |