Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Добовление значения внутрь тега (https://javascript.ru/forum/events/16587-dobovlenie-znacheniya-vnutr-tega.html)

dominic 13.04.2011 17:04

Добовление значения внутрь тега
 
Доброго времени!
Подскажите как добавить внутрь тега определённое значение.
Есть код:
function checkform(f)
{
  var errMSG = ""; 
  for (var i = 0; i<f.elements.length; i++) 
    if (null!=f.elements[i].getAttribute("required")) 
        if (isEmpty(f.elements[i].value))
        errMSG += "  " + f.elements[i].name + "\n";  
			if ("" != errMSG)
			{
				alert("Не заполнены обязательные поля:\n" + errMSG);
				return false;
			}
}

function isEmpty(str) {
   for (var i = 0; i < str.length; i++)
      if (" " != str.charAt(i))
          return false;
      return true;
}

function show(el)
{	
	if(el.value!="YME")
	{
		document.getElementById('app1').style.display = 'none';
		document.getElementById('app2').style.display = 'none';
		document.getElementById('app3').style.display = 'none';
	}

	 else
	{
		document.getElementById('app1').style.display = 'table-row';
		document.getElementById('app2').style.display = 'table-row';
		document.getElementById('app3').style.display = 'table-row';
	}
}

Первые две функции отвечают за проверку ввода данных, третья нужна для скрытия или отображения части строк таблицы при определённых значениях value.
У меня вопрос, как сделать так чтобы в тот момент когда строки скрыты на них не распространялась проверка, а когда открыты - проверялась?:help:
Скрытые строки:
<tr>
		<td style="width:150px;"><b>Роль*:</b></td>
		<td>
		<select name=role maxlength=100  style="width:382px;text-align: center;color:#aa0000;"  onchange="show(this);">
		<option disabled selected value=0>роль не выбрана</option>';
		$res = mysql_query($query) or die(mysql_error());
		while ($row=mysql_fetch_array($res))
		{echo	
			'<option value='.$row['value'].'>'.$row['role'].'</option>';}
		echo'
		</td>
	</tr>

	<tr id="app1" style="display: none;"><td><b>Имя персонажа*:</b></td><td><input type=text name=charname maxlength=100 style="width:382px;color:#aa0000;" required></td></tr>

	<tr id="app2" style="display: none;"><td><b>Класс*:</b></td><td><input type=text name=charclass maxlength=100 style="width:382px;color:#aa0000;" required></td></tr>

	<tr id="app3" style="display: none;"><td><b>История*:</b></td><td><textarea rows="8" cols="20" name=hist maxlength=1000 style="width:382px;color:#aa0000;" required></textarea></td></tr>


Строки проверяются по наличию required в теге.
Хотелось бы чтобы через java он убирался его или добавлять, в зависимости от значения value строки "Роли"

ksa 13.04.2011 20:06

Цитата:

Сообщение от dominic
Подскажите как добавить внутрь тега определённое значение.

Что есть для тебя "нутрь тега"? И какого именно тега?

dominic 14.04.2011 10:47

В данном случае <input> и <textarea>, но в целом интересует, как мощями явы можно добавлять/убирать, слова в самом теге,
как пример
было - <input type=text name=char>,
стало - <input type=text name=char required>
Как менять значения типа width='' и подобные, я знаю,(getElementById) но тем же способом не получается именно слова вставлять

walik 14.04.2011 11:08

Цитата:

Сообщение от dominic
слова в самом теге

называются - Атрибуты.

Так можно:
document.getElementById('myInput').setAttribute('required','');

dominic 14.04.2011 11:27

О, спасибо заработало как надо. Вообще сам использовал setAttribute но описывал его не правильно, просто указывал document.getElementById('req1').setAttribute('requ ired')
Ещё раз спасибо

dominic 14.04.2011 12:02

Всё, полностью разобрался.
Добавляем атрибут: document.getElementById('req1').setAttribute('requ ired','');
удаляем атрибут:
document.getElementById('req1').removeAttribute('r equired');
и всё прекрасно.
walik - ещё раз спасибо, направил в правильное русло


Часовой пояс GMT +3, время: 03:20.