Очистить 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, время: 16:27. |