textarea中的动态文本 - 获得价值

时间:2012-03-14 23:06:11

标签: javascript jquery

我在textarea中的文字/价值并不是一成不变的 - 我正在唠叨它。我无法获得当前价值。 例如 1

<textarea>
Lorem ipsum
</textarea>
//it's defalut in html file

2

Putting into textarea:

Dolores is lorem ipsum

警报仅显示1个版本(&#34; lorem ipsum&#34;),但不显示第二个版本(&#34; Dolores是lorem ipsum&#34;)。我试图在jquery中这样做:

var variable = $("#selector").val();
alert(variable);

我做错了什么?

修改

我想抓住变量:)不要提醒。警报只是我的测试:)

5 个答案:

答案 0 :(得分:1)

$('textarea').change(function() {
  alert($(this).val());
});

答案 1 :(得分:1)

尝试将alert()与事件联系起来:

$('textarea').change(
    function(){
        alert($(this).val());
    });

JS Fiddle demo

参考文献:

答案 2 :(得分:1)

错误发生在其他地方。

您使用的代码是正确的。查看demo

答案 3 :(得分:1)

var text = $('#textareaID').val();

$('#textareaID').change(function() {
  text = $(this).val();
});

什么时候你想要文本只是引用它:)

编辑:

如果您使用标签页UI,请查看docs和活动管理:

Place This outside of bound scope:
var text = $('#textareaID').val(); OR var text = '';

$('#example').bind('tabsselect', function(event, ui) {
      // Objects available in the function context:
      // ui.tab anchor element of the selected (clicked) tab
      // ui.panel element, that contains the selected/clicked tab contents
      // ui.index zero-based index of the selected (clicked) tab
      // INSIDE HERE IS WHERE YOU CAN PUT THE CODE IN THE ABOVE EXAMPLE
      $('#textareaID').change(function() {
            text = $(this).val();
      });
});

注意:$('#example')将是包含标签和内容的父div

进一步优化建议。

如果你认为经常会调用$('#textareaID')你可能想要缓存对它的引用,这样选择器引擎就不必在每个实例上找到它,这可以这样做:

var textarea = $('#textareaID');
 var text = $('#textareaID').val();

对于这一行:

var textarea = $('#textareaID');

确保它在$(文件).ready(function(){})内;调用并且元素存在

您可以通过执行以下操作来检查:

var textarea = $('#textareaID') || false;

将上面的代码包装成如下:

$('#example').bind('tabsselect', function(event, ui) {
          // Objects available in the function context:
          // ui.tab anchor element of the selected (clicked) tab
          // ui.panel element, that contains the selected/clicked tab contents
          // ui.index zero-based index of the selected (clicked) tab
          // INSIDE HERE IS WHERE YOU CAN PUT THE CODE IN THE ABOVE EXAMPLE

          if(textarea) {
               textarea.change(function() {
                    text = $(this).val();
               });
          }
    });

希望这有帮助!

答案 4 :(得分:1)

听起来您正试图在值更改之前将.val()分配给变量。你是正确的,因为你想使用.val()。试试这个jsfiddle,看看variable.val().text().html()产生的差异。