Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Вопрос про text и enter (https://javascript.ru/forum/events/35804-vopros-pro-text-i-enter.html)

Lansaid 22.02.2013 22:09

Вопрос про text и enter
 
Вот это мой код,хотелось бы получить советы по поводу:
1. почему при нажатии на enter в поле text вся форма пропадает (интуитивно понимаю,что связано с отправкой,но почему при этом слетает вся разметка?) и как сделать чтобы она не пропадала.
2. хочется чтобы при нажатии фокус передавался в форму рядом с кнопкой, которую нажали, и было можно корректировать значения.
3. Общие советы по поводу кода: так можно, нельзя, автору еще читать и читать, забыть про javascript



Код:

<!DOCTYPE html>
        <head>
        <meta http-equiv="Content-Type" charset="utf-8"></meta>
        <link rel="stylesheet" type="text/css" href="count.css"/>
</head>
<body>
        <div id = "sumTb">
        <input type="button" value="Добавить строчку" onClick="addRow( )"/>
        <p>Сумма, р</p>
        <form name="countForm">
        <table cellspacing = 0 id="countTable">
          <tbody>
        </tbody>
        </table>       
        </form>
        <div>Итого:<span id="total"></span></div>
        </div>
       
</body>
<script type="text/javascript">
var tb1 = document.getElementById('countTable');

       
function addRow()        {
var tr = tb1.tBodies[0].insertRow(0);
var  td1 = document.createElement('TD');
var  td2 = document.createElement('TD');


   
 
    tr.appendChild(td1);
    tr.appendChild(td2);
    td1.innerHTML = '<input type="text" size="15" name="formNumber" >';
    td2.innerHTML = '<input type="button" value="Сохранить" onclick="checkResult (this)" name ="saveButti"> ';
    var  inp1 = document.forms[0].formNumber; 
    var  but1 = document.forms[0].saveButti;

  document.forms[0].formNumber.focus();
 
 

   
 
checkResult = function ( ) {
    var  inp1 = document.forms[0].formNumber; 
    var but1 = document.forms[0].saveButti;


 var trParent1 = document.forms[0].formNumber.parentNode;
 var childTD2 = trParent1.firstChild;


 

   


    var number = childTD2.value;

    if (isNaN(number) ) {
  alert ('Вы ввели не число. Исправьте, пожалуйста!');
  childForm.focus ();
} else if (number=="") {
    alert ('Вы не вввели число. Исправьте, пожалуйста!');
    childForm.focus();       
}
 else {
    saveResult(this); }
 
}

saveResult=function() {
  var  inp1 = document.forms[0].formNumber; 
  var  but1 = document.forms[0].saveButti;
    var numberi = inp1.value;
 
    td1.innerHTML=numberi;
    td2.innerHTML='<a name="link">Удалить</a>';
    tr.onclick=correctNumber;
    Сalculate();
}

correctNumber = function () {
    var numberu = parseFloat(td1.innerHTML); 
    alert(numberu);
    td1.innerHTML = '<input type="text" size="15" name="formNumber" >';
    document.forms[0].formNumber.value=numberu;
    document.forms[0].formNumber.focus();
    td2.innerHTML='<input type="button" value="Сохранить" onclick="checkResult (this)" name ="saveButti"> ';

}


Сalculate = function (){
    var totalSum= document.getElementById("total");
    var qty = 0;
    var i;
    for (i=1; i<=tb1.tBodies[0].rows.length; i++) {
    qty += parseFloat(tb1.tBodies[0].rows[i-1].cells[0].innerHTML);

 }
  totalSum.innerHTML=qty;
}


} //от большой функции
</script></html>


danik.js 22.02.2013 22:24

Начни с исправления ошибок в коде. В этом тебе поможет коносль, встроенная в браузер. И следующий раз выкладывай код внутри тегов [ HTML run ] ... [ /HTML ]

По поводу html: meta не нужно закрывать - это раз, и скрипт нужно ложить внутри body - это два.

danik.js 24.02.2013 14:07

Lansaid, раз тебе все очевидно, какого хрена тыт тут делаешь?

Lansaid 26.02.2013 18:51

Спрашиваю советов, у тех кто читает вопросы.

cyber 26.02.2013 19:16

Lansaid,оформите нормально код и запилите пример, я тогда посмотрю или ждите кого то кто захочет разбираться в этом.
https://lh6.googleusercontent.com/-3...rM/s1675/1.jpg
П.c wtf? добавил картинку, страница стала размером с картинку.

рони 26.02.2013 19:19

Цитата:

Сообщение от Lansaid
1.

<form name="countForm" onsubmit="return false">

Lansaid 26.02.2013 19:21

Рони,спасибо!с этим вопросом я за 2 дня сам разобрался,но не нашел как закрыть тему.
я второй вопрос задал,думаю с ним с помощью форума быстрее чем за 2 дня получится разобраться.

Lansaid 26.02.2013 19:23

Цитата:

Сообщение от cyber (Сообщение 237384)
Lansaid,оформите нормально код и запилите пример, я тогда посмотрю или ждите кого то кто захочет разбираться в этом.
https://lh6.googleusercontent.com/-3...rM/s1675/1.jpg
П.c wtf? добавил картинку, страница стала размером с картинку.

Честно сказать это был весь код,но он мой первый и поэтому коряв. Вопросы заданные я победил,теперь образовались другие.Вам за ответ и желание разобраться - спасибо.

cyber 26.02.2013 19:54

Lansaid, я имел ввиду что используйте тэг html || js когда вставляете код на форуме.


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