Очистить value поля input type=text
Мне нужно очистить value в поле input type="text". Я сделал так, не знаю правильно?;) (код ниже).
<!DOCTYPE HTML>
<html>
<head><meta charset="utf-8"></head>
<body>
<div id="text" >
<input type="text" value="2" maxlength="150" size="70" name="alias">
</div>
<br/>
<div id="text2" >
<div>
<input type="text" value="222" maxlength="150" size="70" name="alias">
</div>
<div>
<input type="text" value="333" maxlength="150" size="70" name="alias2">
</div>
</div>
<script>
var childNodes = document.getElementById("text2").childNodes;
for (var i=0; i<childNodes.length; i++) {
if (childNodes[i].type == 'text') {
childNodes[i].value = '';
//alert(childNodes[i].type);
}
}
</script>
</body>
</html>
Фишка в том, там где div id="text" value очищается. Там где div id="text2" уже нет. Подскажите пожалуйста, как можно в id="text2" так же очищать value? |
Цитата:
var childNodes = document.getElementById("text2").getElementsByTagName('input');// или так
var childNodes = document.querySelectorAll('#text2 input');//или так
|
Упс, даже не ожидал, кажется нашел решение, вроде работает...Прошу гуру js взглянуть на мое творчество:blink: , если не сложно может какие есть замечания?
if (childNodes[i].type == 'text') {
childNodes[i].value = '';
} else if (childNodes[i].tagName == 'DIV') {
var new_childNodes = childNodes[i].childNodes;
for(var b=0; b<new_childNodes.length; b++) {
if (new_childNodes[b].type) {
if (new_childNodes[b].type == 'text') {
if (new_childNodes[b].value != '')
new_childNodes[b].value = '';
}
}
}
}
|
Если поля изначально пустые, далее заполняются юзером и нужно их очистить, то все проще:
<form id="form">
<input type="text" name="alias" />
<input type="text" name="alias2" />
<button type="button" onclick="form.reset()">Очистить</button>
</form>
<script>
form.alias.value = form.alias2.value = 'abc';
</script>
|
Цитата:
|
izcian, дапофиг. Ты не доволен querySelectorAll ? Почему?
А есть еще form.elements - коллекция всех контролов (правда там и кнопки тоже) - тоже удобно. Правда вроде не кроссбраузерно... |
Цитата:
|
Цитата:
Не совсем по теме, подскажите пожалуйста а как очистить textarea, а то че-то ничего не нашел в инете? |
Цитата:
Цитата:
|
Цитата:
id.value = ""; |
Цитата:
Я просто другого способа не нашел
<div id="check" style="display: block;">
<div>Раздел-товары: </div>
<input type="checkbox" value="Для головы" name="check[]">
Для головы
<input type="checkbox" checked="checked" value="Для пуза" name="check[]">
Для пуза
<input type="checkbox" value="Для рук" name="check[]">
Для рук
</div>
|
izcian,
<!DOCTYPE HTML>
<html>
<head><meta charset="utf-8"></head>
<body>
<div id="check" style="display: block;">
<div>Раздел-товары: </div>
<input type="checkbox" value="Для головы" name="check[]">
Для головы
<input type="checkbox" checked="checked" value="Для пуза" name="check[]">
Для пуза
<input type="checkbox" value="Для рук" name="check[]">
Для рук
</div>
<script>
var childNodes = document.querySelectorAll('#check :checked');
for (var i=0; i<childNodes.length; i++) {
childNodes[i].checked = !1;
}
</script>
</body>
</html>
|
Цитата:
Цитата:
Цитата:
|
Цитата:
Если только дать id форме, а полям имена, то тогда можно юзать как formId.fieldName (но надо избегать конфликтов со свойствами формы) |
danik.js,
то есть надо false писать? или как |
<div id="check" style="display: block;">
<div>Раздел-товары:</div>
<input type="checkbox" value="Для головы" name="check[]">Для головы
<input type="checkbox" checked="checked" value="Для пуза" name="check[]">Для пуза
<input type="checkbox" value="Для рук" name="check[]">Для рук</div>
<script>
for (
var els = check.getElementsByTagName('input'),
len = els.length;
len;
els[--len].checked = 0
);
</script>
тогда можно так. 0 -> false, 1 -> true |
Poznakomlus честно признаться как у Вас for работает...Для меня как китайская грамота))
|
мой вариант: ))
<div id="check" style="display: block;">
<div>Раздел-товары:</div>
<input type="checkbox" value="Для головы" name="check[]">Для головы
<input type="checkbox" checked="checked" value="Для пуза" name="check[]">Для пуза
<input type="checkbox" value="Для рук" name="check[]">Для рук</div>
<script>
Array.prototype.forEach.call(document.querySelectorAll('input'), function (a)
{
a.checked = 0;
});
</script>
|
Цитата:
Цитата:
|
Цитата:
Цитата:
|
Цитата:
alert(true == 1); alert(false == 0); я уверен, что конопля гораздо лучше водки и если бы был закон ее легализации проголосовал за |
Цитата:
el.checked = {};
el.checked = '';
А что, соответствие то нестрогое :) А логика? Да хрен на нее, лучше показать свою осведомленность о приведении типов )) Я бы еще понял если бы увидел такое в C++, но не в JS. |
ахахаха
|
Цитата:
может покажешь стандарт где этот атрибут булев |
Poznakomlus, ну если "минификаторы так делают же" - это аргумент, то давай еще писать скрипты в одну строчку, переменные в одну букву ну и так далее ))
|
может покажешь стандарт где этот атрибут булев
|
Цитата:
http://www.whatwg.org/specs/web-apps...-input-checked Цитата:
|
Тебе еще нужны "доказательства"?
alert(typeof document.createElement('input').checked);
Странный ты человек... |
Цитата:
или эти записи ты никогда не встречал <input type="radio" checked> <input type="checkbox" checked> <input type="radio" checked="checked" /> <input type="checkbox" checked="checked" /> это спор не о чем конечно я бы не писал !0 или !1, но 0 и 1 вполне допустил бы когда-то на вопрос такой оптимизации мне ответили это все равно что причесывать брови, делается в высоконагруженных проектах, где наверное не будет js |
Цитата:
Цитата:
|
Цитата:
И еще. Есть два понятия: content-атрибут и IDL-атрибут. Вот то что ты показал - это способы задания content-атрибута булева типа. Есть еще вариант checked="". А вот в контексте js уже речь должна идти об IDL атрибуте, и там уже способы задания зависят от языка. К слову, я ссылку привел на content-атрибут, но не суть важно. |
| Часовой пояс GMT +3, время: 12:05. |