Помогите с заданием
Панель содержит поле ввода, список и кнопки «Добавить» и «Изменить». При нажатии на кнопку «Добавить» содержимое редактора (если оно
не пустое) добавить в список и очистить редактор. При нажатии на кнопку «Изменить» выбранную строку списка (если она выбрана) записать в редактор и удалить из списка. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"> <HTML> <HEAD> <SCRIPT TYPE="text/JavaScript"> function Addstr(f) { var elOpt= new Option; str=f.Newstring.value; if (str.length==0) return; elOpt.text=str; //elOpt.value="str"; f.rows.options.add(elOpt); } function Delstr(f) { i=0; while (i<f.rows.options.length) if (f.rows.options[i].selected) f.rows.options[i]=null; else i++; } </SCRIPT> </HEAD> <BODY> <H3>Список имен</H3> <FORM ACTION="http:/D:/try_web_site/Наташа" METHOD="post"> <SELECT SIZE=8 NAME="rows" MULTIPLE> <OPTION>abcd</OPTION> <OPTION>efgh</OPTION> <OPTION>ijkl</OPTION> <OPTION>mnop</OPTION> </SELECT> <INPUT TYPE=TEXT ID="Newstring"> Новая строка <INPUT TYPE="button" ONCLICK="Addstr(this.form)" ID="Add" VALUE="Добавить"> <INPUT TYPE="button" ONCLICK="Delstr(this.form)" ID="Rem" VALUE="Удалить"> </FORM> </BODY> </HTML> Что нужно изменить? Что добавить? |
Devi2015,
сначала нужно привести код в читаемый вид |
Devi2015, на
<!DOCTYPE html> <!--по новому стандарту доктайп такой -->
<html>
<head>
<script> <!-- язык можно не указывать. Он по умолчанию JS -->
var add=function(){
var sel = document.getElementById('Rows'),
str = document.getElementById('newString').value,
opt = document.createElement("option");
if(str!=""){
opt.text = str;
sel.add(opt);
document.getElementById('newString').value="";
}
else{ alert("Строка пустая!") }
}
var rem=function(){
var sel = document.getElementById('Rows'),
opt = sel.options[sel.selectedIndex];
sel.removeChild(opt)
}
document.getElementById('Add').addEventListener('click',add);
document.getElementById('Remove').addEventListener('click',rem);
</script>
</head>
<body>
<h3>Список имен</h3>
<form action="http:/D:/try_web_site/Наташа" method="post">
<select size=8 id="Rows" multiple>
<option>Первый</option>
<option>Второй</option>
<option>Третий</option>
<option>Чытвертый</option>
</select>
<input type="text" id="newString">Новая строка
<input type="button" id="Add" value="Добавить">
<input type="button" id="Remove" value="Удалить">
</form>
</body>
</html>
|
У вас не работают кнопки, т.к. на них не назначены обработчики onclick
операции
document.getElementById('Add').addEventListener('click',add);
document.getElementById('Remove').addEventListener('click',rem);
не выполняются, т.к. к ним нет обращения. Нужно включить их в функцию
function init() {
document.getElementById('Add').addEventListener('click',add);
document.getElementById('Remove').addEventListener('click',rem);
}
и запускать ее при загрузке страницы Код:
<body onload="init();"> |
Dilettante_Pro,
я в песочнице делал |
и что в песочнице? Вот ваш код в работающем виде.
Цитата:
|
| Часовой пояс GMT +3, время: 13:37. |