Javascript-форум (https://javascript.ru/forum/)
-   (X)HTML/CSS (https://javascript.ru/forum/xhtml-html-css/)
-   -   JS считать последнию введеную textarea строку (https://javascript.ru/forum/xhtml-html-css/63893-js-schitat-posledniyu-vvedenuyu-textarea-stroku.html)

lolidze 06.07.2016 23:13

JS считать последнию введеную textarea строку
 
Добрый день, помогите решить задачу, нужно сделать подобие соц опросника на сайте, сайт спрашивает, а юзер отвечает(нужно именно строковый вариант,никаких кнопок, других полей и тп) и еще должны проверить на правильность ответ, т.к я только сегодня начал работать с js и тп, то кучу сразу вопросов. Начал я делать с помощью textarea, вывожу текст, но вот как считать именно последний ? тобишь, можно вродь как считать так текст :

var tex=document.getElementById('tt').value;

но оно возьмет все. Вот, что я накодил :

<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Стили</title>

 </head>
 <body>

<div class="fixed-textarea"> <textarea name ="tt" id="tt" style="height: 100%;width: 100%;" > </textarea></div>

<script language="JavaScript">
var text = '>> Сколько лет земле ? \r\n >> '
var i=0;
function type(){

    i++;
    if( i <= text.length )
        document.getElementById("tt").innerHTML = text.substr(0, i);

    setTimeout( type, 50 );
}

function one(){

    var k= Math.random();

var tex=document.getElementById('tt').value;
    setTimeout( type, 10 );
}

type();

</script>

 </body>
</html>

Царь Леонид 06.07.2016 23:27

Плюс минус как-то так

<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Стили</title>

 </head>
 <body>

<div class="fixed-textarea"> <textarea name ="tt" id="tt" style="height: 100%;width: 100%;" > </textarea></div>

<div id="result"></div>   
<script language="JavaScript">
var text = '>> Сколько лет земле ? \r\n >> ',
    i=0,
     textInput = document.getElementById("tt"),
    result = document.getElementById("result");
function type(){

    i++;
    if( i <= text.length )
        document.getElementById("tt").innerHTML = text.substr(0, i);

    setTimeout( type, 50 );
}

function one(){

    var k= Math.random();

var tex=document.getElementById('tt').value;
    setTimeout( type, 10 );
}

type();
  
textInput.addEventListener('keyup', function(e){
  var answer = e.target.value.split('>>')
  result.innerHTML = answer[answer.length-1]
})  
  
</script>

 </body>
</html>

lolidze 06.07.2016 23:40

спасибо большое. Кстати, не подскажите, почему, когда я делаю вот так :
<script language="JavaScript">
var text = '>> Сколько лет земле ? \r\n >> '
var i=0;
function type(tx){

    i++;
    if( i <= tx.length )
        document.getElementById("tt").innerHTML = tx.substr(0, i);

    setTimeout( type, 50 );
}

type(text);

</script>


оно не верно отображает ? тобишь, я хочу посылать в функию сам текст, который он должен выводить

Rasy 06.07.2016 23:50

Царь Леонид,
А зачем функция one?

lolidze 06.07.2016 23:55

эт я тестил, он просто не удалил)

Rasy 06.07.2016 23:59

Цитата:

Сообщение от lolidze
тобишь, я хочу посылать в функию сам текст, который он должен выводить

зачем?)

lolidze 07.07.2016 00:02

всм ? ну, текст для вывода у меня будет не один (после прочтения строки и тп вывести еще одну) и не логично было бы для каждого текста функцию создавать (как у меня щас работает).

Rasy 07.07.2016 00:20

lolidze,
<script language="JavaScript">
var text = '>> Сколько лет земле ? \r\n >> ';
var i=0;
function type(tx){

    i++;
    if( i <= tx.length )
        document.getElementById("tt").innerHTML = tx.substr(0, i);

    setTimeout(function() {
        type(tx);
    }, 50);
    
}

type(text);

</script>

lolidze 07.07.2016 00:31

спасибо большое

lolidze 07.07.2016 00:37

Цитата:

Сообщение от Царь Леонид (Сообщение 421446)
Плюс минус как-то так

<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Стили</title>

 </head>
 <body>

<div class="fixed-textarea"> <textarea name ="tt" id="tt" style="height: 100%;width: 100%;" > </textarea></div>

<div id="result"></div>   
<script language="JavaScript">
var text = '>> Сколько лет земле ? \r\n >> ',
    i=0,
     textInput = document.getElementById("tt"),
    result = document.getElementById("result");
function type(){

    i++;
    if( i <= text.length )
        document.getElementById("tt").innerHTML = text.substr(0, i);

    setTimeout( type, 50 );
}

function one(){

    var k= Math.random();

var tex=document.getElementById('tt').value;
    setTimeout( type, 10 );
}

type();
  
textInput.addEventListener('keyup', function(e){
  var answer = e.target.value.split('>>')
  result.innerHTML = answer[answer.length-1]
})  
  
</script>

 </body>
</html>


а моежете подсказать, как считать только окончательный ответ ? тобишь, когда уже дописал и нажал ентер (к примеру). просто мне приходится сравнивать результат набранный с клавиатуры, а так как он по символьно, то не оч хорошо получается. Можете подсказать ?


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