2015-07-01 42 views
-2

我正在尋找一種方法來獲取Html.TextAreaFor的輸入,但我找不到解決方案。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> 

我也試圖定義一個ID,但仍然沒有反應

回答

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