Jump to content
  • 0

Подсет определенных ID


maza
 Share

Question

искал, искал, не наш?л :D

вопрос:

Есть, допустим, 10 инпут-полей с id, как с помощью JS посчитать все эти id??

интуитивно вот так, есстественно, не работает :D

document.getElementById('pole').length;

p.s.:только не спрашивайте зачем, плз!

Link to comment
Share on other sites

23 answers to this question

Recommended Posts

  • 0

Если все эти поля в одной форме, то например вот так:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
<title></title>
<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
<script language="JavaScript" type="text/javascript">
/*<![CDATA[*/
function showLength()
{
form_name = document.getElementById('form1');
alert ("В форме " + form_name.elements.length + " элементов");
}
/*]]>*/
</script>
</head>

<body>
<form id="form1">
<input type="text" name="#" />


<input type="text" name="#" />


<input type="text" name="#" />


<input type="text" name="#" />


<input type="text" name="#" />
</form>
<a href="java script:void" onclick="showLength()">Click Me</a>
</body>

</html>

Link to comment
Share on other sites

  • 0

Storm, ты маньяк!!! :-)

тоже вариант, кстати!

но я только, что додумался как мне решить мою проблему:

document.uslugi.pole.length;

где uslugi - имя формы

pole - id поля (в мо?м случае)

—————-

Спасиб, ребята!

Link to comment
Share on other sites

  • 0
искал, искал, не наш?л :D

вопрос:

Есть, допустим, 10 инпут-полей с id, как с помощью JS посчитать все эти id??

интуитивно вот так, есстественно, не работает :D

document.getElementById('pole').length;

p.s.:только не спрашивайте зачем, плз!

Никак. На одной странице может быть ровно один элемент с уникальным id.

Link to comment
Share on other sites

  • 0

Люди, а как вы решили проблему с очисткой value?

я хотел написать на жабе так, чтобы всем полям input дать один и тот же id, но обламался

затем пробовал дать всем input полям разные id, типа pole1, pole2, ... pole9, pole10, но тоже обламался

хотел одного: чтобы, если надо добавить поле - не править жабаскриптус!

короче промучался несколько часов и ничего не получилось, оставил так:

<script type="text/javascript">
function ClearForm() {
var countpol = 10;
var i = 0;
while(i < countpol) {
document.getElementById('pole' + [++i]).value = '';
}
}
</script>

:D

Link to comment
Share on other sites

  • 0

2 Emm +1 :D

2 maza

Если надо почистить вс? и именно без кнопки (из скрипта) : [DOMFormElement].reset();

Если в какой то определенный момент времени надо почистить именно часть полей, а не все (причем у них name'ы разные), то можно пройти по className. Например:

<form id="myForm">
<input type="text" name="n1" class="myReset" />
<input type="text" name="m2" class="myReset" />
<input type="text" name="t23" class="myReset" />
<input type="text" name="o1" class="myReset" />
</form>

function resetMyReset () {
var toReset = document.getElementById('myForm').getElementsByTagName('INPUT');
for (var i=0, e=toReset.length; i<e, i++)
if (toReset[i].className == 'myReset')
toReset[i].value = '';
}

можно напридумывать массу вариаций.

сразу говорю что код набросал сразу, потому без проверки. Но общая идея надеюсь понятна

Link to comment
Share on other sites

  • 0

целый день сижу мучаю эту форму :D

короче вот такой код работает:

function resetPole() {

var FormUslugi = document.getElementById('uslugi');
var PoleInput = FormUslugi.getElementsByTagName('input');

for ( var i = 0; i < PoleInput.length; i++) {

if ( PoleInput[i].className == 'pole' ) {
PoleInput[i].value = '';
}

}

}

только id uslugi я задал таблице в которой форма, потому что по-другому не хотело пахать.. :/

Вопрос, а как же быть с , как его очистить, когда у него нет value, а вводимый текст ставится между этими тегами?? :|

Link to comment
Share on other sites

  • 0

прикол в том, что если мы ошиблись, то чтобы текст не исчез, мы в поля вставляем текст, который отправлялся.

Если в полях (input) мы пишем в value, то в textarea нам нужно подставлять тот текст между тегами.

Потому что, если даже и написать типа такого:

, то текст этот не отобразится..

Если посмотреть на htmlbook про тег textarea, то можно заметить, что про существование свойства value, не говорится.

Но жабескриптус можно задать типа такого:

document.getElementsByTagName('textarea').value = '';

и оно очистит благополучно и даже не ругн?тся, что этот тег value мы даже не написали :|

Кстати, лучше этого кода я не придумал:

function resetPole() {

var PoleInput = document.getElementsByTagName('input');
var PoleTextArea = document.getElementsByTagName('textarea');

for ( var i = 0; i < PoleInput.length; i++) {
if ( PoleInput[i].className == 'pole' ) {
PoleInput[i].value = '';
}
}
for ( var i = 0; i < PoleTextArea.length; i++) {
if (PoleTextArea[i].className == 'pole') {
PoleTextArea[i].value = '';
}
}

}

html будет выглядеть приблизительно так:

<form>

<input name="one" class="pole" value="esli est">
<input name="too" class="pole" value="esli est">
<input name="three" class="pole" value="esli est">
<input name="four" class="pole" value="esli est">
...
<textarea name="text1 class="pole">some text</textarea>
<textarea name="text2 class="pole">some text</textarea>
...

<input type="button" onClick="resetPole();" value="Очистить"></input>

</form>

смысл кода в том, что если нам понадобится добавить input или textarea, то нам просто надо будет дать им class="pole", если мы захотим, чтобы кнопка "очистить" распространялась и на них.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy