2015-07-01 2 views
-2

Я ищу способ получить входной файл Html.TextAreaFor, но я не могу найти решение.событие изменения текстового поля

Я пробовал несколько вариантов, первая функция изменения, которая работает только после выхода, а вторая включает событие нажатия клавиши с двумя недостатками: сначала он запускается до ввода текста, второй, если кто-то вставляет какой-то ввод это не сработает.

Вы знаете, как я могу получить точный ввод после изменения текста @Html.TextAreaFor(model => model.Text, 10, 50, null)?

Это текущая попытка:

$('#Text').on('keyup paste input', function() { 
    var value = $(this).val(); 
    alert(value); 
}); 

с:

<div class="editor-label"> 
     @Html.LabelFor(model => model.Text) 
    </div> 
    <div class="editor-field"> 
     @Html.TextAreaFor(model => model.Text, 10, 50, null) 
     @Html.ValidationMessageFor(model => model.Text) 
    </div> 

Я также попытался определить идентификатор, но до сих пор никакой реакции

ответ

0

Вы можете попробовать использовать таймер и тест когда значение изменяется. Как показано ниже:

(function($){ 
    $(document).ready(function(){ 

    var value = $('#Text').val(); 

    setInterval 
    (
     function() 
     { 
     if($('#Text').val() == value) 
     { 
      //do something 
     } 
     else 
     { 
      var newValue = $('#Text').val(); 
      value = newValue; 
     } 
    }, 

    1000 
    ) 
}) 
})(jQuery); 

Недостатком является то, что timeout будет работать каждый второй по продолжительности страницы. Поэтому убедитесь, что вы нашли способ очистить тайм-аут, когда у вас есть то, что вам нужно.

+0

Куда можно вставить его? «это» означает, что оно находится в другой функции? – Underfaker

+0

Я обновил свой ответ, чтобы принять это во внимание. Поэтому вы можете просто вставить его в любом месте. – NaijaProgrammer

+0

Эта функция работает только один раз, в начале, но она не работает после первого раза. – Underfaker

Смежные вопросы