установка стиля элемента по событию
здравствуйте
цель - при вводе в поле формы текста функция должна найти этот текст в таблице и сделать у элемента таблицы бордер. написал функцию по событию onclick. она срабатывает, стиль подключается и сразу исчезает. нужно, чтобы стиль оставался всегда. вот разметка: <form> <input type="text" id="text" /> <input type="submit" id="submit" onclick="search()" /> </form> <table> <tr> <td>s4567</td> <td>9876</td> <td>описание1</td> <td>продукт1</td> </tr> <tr> <td>s4568</td> <td>9877</td> <td>описание2</td> <td>продукт2</td> </tr> <tr> <td>s4569</td> <td>9878</td> <td>описание3</td> <td>продукт3</td> </tr> <tr> <td>s4570</td> <td>9879</td> <td>описание4</td> <td>продукт4</td> </tr> <tr> <td>s4571</td> <td>9880</td> <td>описание5</td> <td>продукт5</td> </tr> <tr> <td>s4572</td> <td>9881</td> <td>описание6</td> <td>продукт6</td> </tr> </table> джава скрипт
function search()
{
var txt = document.getElementById("text").value;
if (txt == "")
{
alert("Введено пустое значение");
return false;
}
var tags = document.getElementsByTagName("td");
for (i = 0; i <= tags.length; i++)
{
if (tags[i].innerHTML == txt)
{
return tags[i].style.border = '#00FF00 solid 1px';
}
}
}
помогите, пожалуйста |
Цитата:
Цитата:
Цитата:
|
gazman,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<form>
<input type="text" id="text" />
<input type="submit" id="submit" onclick="return search()" />
</form>
<table>
<tr>
<td>s4567</td>
<td>9876</td>
<td>описание1</td>
<td>продукт1</td>
</tr>
<tr>
<td>s4568</td>
<td>9877</td>
<td>описание2</td>
<td>продукт2</td>
</tr>
<tr>
<td>s4569</td>
<td>9878</td>
<td>описание3</td>
<td>продукт3</td>
</tr>
<tr>
<td>s4570</td>
<td>9879</td>
<td>описание4</td>
<td>продукт4</td>
</tr>
<tr>
<td>s4571</td>
<td>9880</td>
<td>описание5</td>
<td>продукт5</td>
</tr>
<tr>
<td>s4572</td>
<td>9881</td>
<td>описание6</td>
<td>продукт6</td>
</tr>
</table>
<script>
function search() {
var txt = document.getElementById("text").value;
if (txt) {
var tags = document.getElementsByTagName("td");
for (i = 0; i < tags.length; i++)
if (tags[i].innerHTML == txt) tags[i].style.border = "#00FF00 solid 1px"
} else alert("Введено пустое значение");
return false
};
</script>
</body>
</html>
|
насчет сразу исчезает - при перезагрузке страницы чтоли? А по задумке должен оставаться?
|
да. должен стиль оставаться для найденного элемента
|
Цитата:
|
gazman,
потому что страница перезагружается при клике и элемента с индексом tags.length не существует. |
Рони, объясните, пожалуйста, почему происходит перезагрузка страницы? я хочу разобраться, чтобы не совершать похожие ошибки в дальнейшем.
|
gazman,
форма, жмакается кнопа отправить, ничего отправку не отменяет, вот и перезагрузка или переход на несуществующий action. в моём варианте происходит отмена отправки. Цитата:
|
gazman,
можно отменить через submit <form onsubmit="return false"> <input type="text" id="text" /> <input type="submit" id="submit" onclick="search()" /> </form> |
| Часовой пояс GMT +3, время: 14:00. |