Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 23.03.2014, 11:12
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

И у тебя в коде есть одна большая ошибка - document.write используется только на этапе генерирования страницы. Когда страница готова, document.write будет затирать все содержимое, что, собственно, у тебя сейчас и происходит. Чтобы как-то выводить пользователю информацию, надо создать специальный элемент (например, блок - <div>), проставить ему идентификатор (output можно) и управлять его содержимым из функций вывода. Показываю:
<html>
<head>
<script>
function insertText()
{
   document.getElementById("output").innerHTML = document.getElementById("myinput").value;
}
</script>
<style>
#output
{
   width: 300px; 
   height: 100px;
   border: 2px ridge blue;
   word-wrap: break-word;
}
</style>
</head>
<body>
<input id="myinput" type="text" placeholder="Здесь введите текст" />
<input type="button" value="ОК" onclick="insertText()" />
<div id="output">
Здесь будет выводиться текст.
</div>
</body>
</html>

Последний раз редактировалось Erolast, 23.03.2014 в 11:16.
Ответить с цитированием
  #12 (permalink)  
Старый 23.03.2014, 21:36
Интересующийся
Отправить личное сообщение для vesnushka163 Посмотреть профиль Найти все сообщения от vesnushka163
 
Регистрация: 22.03.2014
Сообщений: 12

Erolast,
спасибо огромное за помощь! просмотрела код - разобралась, что к чему! просто преподаватель скорее всего берет примеры кода, которые дает в теории к лабораторной в интернете и не проверяет работающие они или нет, а выдает их за правильные программы, а точнее как должно быть. грустно это, конечно. Но про верстку мне интересно, если не сложно, с удовольствием мы посмотрела, как правильно.
Ответить с цитированием
  #13 (permalink)  
Старый 24.03.2014, 10:24
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
Но про верстку мне интересно, если не сложно, с удовольствием мы посмотрела, как правильно.
Сейчас страницы составляют из трех основных тегов - <div>, <span> и <table>, плюс, конечно же, неизмненные <form>, <input> , <img>, <button>, <a> и тому подобные. Цвет текста, фон, и прочее подобное прописывается при помощи css. CSS имеет два варианта записи. Первый - все стили прописываются в специальном теге <style>, элементы, к которым они применяются, задаются при помощи селекторов. Второй - стили прописывается непосредственно в элементе в атрибуте style, естественно, они будут применяться к этому самому элементу. Чаще всего стили наследуемы.

<div> - блочный элемент, то есть, его ширина равна 100% от родительского элемента либо специально указанной в стилевом свойстве width. Высота блока равна высоте его содержимого либо указанной в стилевом свойстве height. Так или иначе, любой блочный элемент не дает уместиться в том же ряду ни одному другому:
<div style="color: blue">Блок.</div>
<button>Трям</button>

Несмотря на то, что между элементами не стоит тега переноса строки <br />, они находятся на разных строках.

Тег <span> - строчный элемент. И ширина, и высота блока равны высоте его содержимого, насильно задать их невозможно. В одном ряду может распологаться сколько угодно строчных элементов.
<span style="background-color: yellow; height: 500px; width: 300px;">   Трям   </span>
    <span style="background-color: pink; height: 100px; width: 1px;">   Другой трям   </span>


Стиль отображения элемента может быть указан через стилевое свойство display. Полный список возможных его значений можно просмотреть тут. Основные значения:
  • none - элемент не отображается, страница показывается так, будто бы его и нету.
  • block - размер подобного элемента настраиваемый, так или иначе занимает весь ряд (<div> по умолчанию именно такой).
  • inline-block - размер подобного элемента настраиваемый, весь ряд не занимает.
  • inline размер равен размеру содержимого, весь ряд не занимает (по умолчанию таков <span>).

К элементам принято обращаться по уникальному идентификатору, а не через имя.
<div id="mydiv">Траляля</div>
<script>alert(document.getElementById('mydiv').innerHTML)</script>

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

Последний раз редактировалось Erolast, 02.04.2014 в 12:49.
Ответить с цитированием
  #14 (permalink)  
Старый 29.03.2014, 19:35
Интересующийся
Отправить личное сообщение для vesnushka163 Посмотреть профиль Найти все сообщения от vesnushka163
 
Регистрация: 22.03.2014
Сообщений: 12

спасибо огромное за затраченное время!!! разобралась!
Ответить с цитированием
  #15 (permalink)  
Старый 03.04.2014, 18:43
Интересующийся
Отправить личное сообщение для vesnushka163 Посмотреть профиль Найти все сообщения от vesnushka163
 
Регистрация: 22.03.2014
Сообщений: 12

Erolast,
у меня кнопка добавления не добавляет товар в массив и не выводит его в каталоге, в чем может быть проблема? я уже все пересмотрела, ошибок компилятор не пишет, она просто не работает
Ответить с цитированием
  #16 (permalink)  
Старый 03.04.2014, 19:04
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Ну просто так ответить невозможно, это надо код видеть.
Ответить с цитированием
  #17 (permalink)  
Старый 03.04.2014, 21:11
Интересующийся
Отправить личное сообщение для vesnushka163 Посмотреть профиль Найти все сообщения от vesnushka163
 
Регистрация: 22.03.2014
Сообщений: 12

Erolast,
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=in-1251" />
<script LANGUAGE = "JavaScript">
function Goods (name, value, price)
{
this.name = name;
this.value = value;
this.price = price;
this.toString = toString;
}

function toString()
{
document.write("Товар:" + this.name + " Количество: " + this.value + " Цена: " + this.price + "<br>");
}

function add()
{
Storeroom[leng] = new Goods(document.Catalog.name1.value, document.Catalog.value1.value, document.Catalog.price1.value);
document.write ("Товар: " +Storeroom[leng].name + " Количество: " + Storeroom[leng].value + " Цена: " + Storeroom[leng].price + "<br>" );
}

function changePrice()
{
var Proverka = 0
for (i = 0; i < leng; i++)
{
if (document.Catalog.name2.value ==Storeroom[i].name)
{
Storeroom[i].price = document.Catalog.price2.value;
Proverka = 1;
}
}
}


//if (Proverka == 0) alert("Нет такого товара");
//}
function sold()
{
var Proverka = 0;
var SaleKol = parseFloat(document.Catalog.value3.value);
var OldKol;
var NewKol;
for (i = 0; i<leng; i++)
{
if (document.Catalog.name3.value == Storeroom[i].name)
{
OldKol = parseFloat(Storeroom[i].value);
if (SaleKol <= OldKol)
{
NewKol = OldKol - SaleKol;
Storeroom[i].value = NewKol;
Proverka = 1;
}
else
{
alert("Количество проданного товара не может превышать имеющийся запас!");
Proverka = 2;
}
}
}
if (Proverka == 0) alert("Такого товара нет в списке");
}
</script>
</head>
<body bgcolor="white" text="black">
<font size=5>
<script LANGUAGE = "JavaScript">
Storeroom = new Array();
Storeroom[0] = new Goods ("Хлеб", "30", "50");
Storeroom[1] = new Goods ("Молоко", "50", "70");
Storeroom[2] = new Goods ("Сыр", "6", "200");
Storeroom[3] = new Goods ("Пряники", "4", "45");
var leng = Storeroom.length;
</script>
<form NAME = "Catalog">
<font color="red">
<H2 align = left><u> Список товаров </u></H2><br>
Для просмотра списка товаров нажмите на кнопку "Каталог". <br><br>
<INPUT TYPE = "button" NAME = "Spisok" VALUE = "Каталог" onClick = "Storeroom.toString();">
</font>
<font color="blue">
<H2 align=left><u> Добавление товара</u></H2><br>
Для добавления товара в каталог, введите наименование, цену и количество и нажмите кнопку "Добавить"
<PRE>
<INPUT TYPE = "text" NAME = "name1"VALUE="наименование">
<INPUT TYPE = "text" NAME = "value1"VALUE="количество">
<INPUT TYPE = "text" NAME = "price1"VALUE="цена">
</PRE>
<INPUT TYPE = "button" NAME = "Addname"VALUE="Добавить" onClick="add();leng=leng+1;">
<br>
</font>
<font color="green">
<H1 align = left><u> Изменение цены </u></H1><br>
Для изменения цены товара, введите наименование этого товара и его новую цену и нажмите "Изменить цену".
Чтобы посмотреть изменение цены в каталоге необходимо обновить его, нажав два раза "Каталог". <br>
<PRE>
<INPUT TYPE = "text" NAME = "name2" VALUE = "наименование">
<INPUT TYPE = "text" NAME = "price2" VALUE = "цена">
</PRE>
<INPUT TYPE = "button" NAME = "ChangePrice" VALUE = "Изменить цену" onClick = "changePrice()">
<br><br>
</font>
<font color="pink">
<h1 align = left><u> Изменение количества </u></h1><br>
Для того, чтобы вычесть проданное количество товара, необходимо ввести в форму его наименование и количество проданного товара и нажать "Изменить количество".
Чтобы посмотреть изменение количества товара в каталоге необходимо обновить его, нажав два раза "Каталог". <br>
<PRE>
<INPUT TYPE = "text" NAME = "name3" VALUE = "наименование">
<INPUT TYPE = "text" NAME = "value3" VALUE = "количество">
</PRE>
<INPUT TYPE = "button" NAME = "ChangeValue" VALUE = "Изменить количество" onClick = "sold()">
<br><br>
</font>
</form>
</font>
</body>
</html>
Ответить с цитированием
  #18 (permalink)  
Старый 03.04.2014, 21:12
Интересующийся
Отправить личное сообщение для vesnushka163 Посмотреть профиль Найти все сообщения от vesnushka163
 
Регистрация: 22.03.2014
Сообщений: 12

Erolast,
вот функция add не работает
Ответить с цитированием
  #19 (permalink)  
Старый 04.04.2014, 12:12
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

В сообщениях на этом форуме обрамляй код в тег html (либо js для чистого js, css для чистого css, php для php). Если хочешь добавить кнопку "посмотреть" - приписывай атрибут run в тег.

Блоки кода нужно отбивать клавишей tab, тогда код становится во много раз читабельней.

Когда нужно добавить единицу к переменной, используй инкремент:
var x = 1;
x++;
alert(x)

Либо, если нужно отнять единицу, декремент:
var x = 1;
x--;
alert(x);


Методы объекта принято назначать внутри конструктора объекта, а не в глобальном пространстве, вот таким образом:
function myObjConstructor()
{
  this.run = function() {
    alert("Привет!");
  }
}


И главное - ты до сих пор используешь для вывода document.write. Не надо так, при этом полностью затирается вся страница, включая все переменные. Естественно, ничего и не показывается. Используй хотя бы alert вместо него.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает код внутри циклов DZHETIGAPA Events/DOM/Window 1 21.06.2011 01:03
Код калькулятора на JS. помогите с ошибкой! kirill.psl Общие вопросы Javascript 9 26.08.2010 11:38
Анимация. Помогите понять почему не работает. kadurban jQuery 4 08.07.2010 20:50
Не работает простой код. Помогите, очень надо AntiBuger Internet Explorer 1 27.05.2010 16:35
достал уже IE (не работает код) Weise Internet Explorer 11 29.03.2010 13:46