修复了textarea末尾的文本

时间:2010-08-20 12:11:59

标签: jquery textarea

有没有办法在textarea的文本末尾获得固定的默认文本?为什么?我有一个textarea来制作twitter stsatuses,最后,每个用户都必须签名。所以我希望在文中有它,它们无法删除。

任何代码或插件都可以吗?

4 个答案:

答案 0 :(得分:3)

我认为这已经太老了,我在想你是否对你的问题有任何好的解决方案,因为我几乎就像在这里做同样的事情。如果没有,也许你想在http://jsfiddle.net/index/tX44C/2/检查我的答案。

答案 1 :(得分:0)

不久前我不得不解决类似的问题。我决定限制他们可以添加到twitter文本区域的作品数量,而不是固定文本,这样只允许110个字符,而不允许使用140个字符。我在客户端使用jquery强制执行此操作,并在服务器端验证它。

在您的情况下,请使用与以下相同的代码,但请替换:

tweet = $('#edit-tweet').val();

tweet = $('#edit-tweet').val() + 'Your Signature';

这是我在客户端使用的代码:

  $(document).ready(function() {

    var tweet_area = $('#edit-tweet');

    tweet_area.keyup(count_down);

    count_down();

    dim();

    tweet_area.hover(highlight, dim);

  });


/**
 * Count down function
 */
function count_down() {
  var left = 110 - $('#edit-tweet').val().length;

  if (left < 0) {
    left = 0;
    limit_text(tweet);
  } else {
    tweet = $('#edit-tweet').val();
  }
  $('#counter').text(' - ' + left);
}

/**
 * Limits the tweet text value to static sized tweet.
 * 
 * @param tweet
 *          the static sized tweet
 */
function limit_text(tweet) {
  $('#edit-tweet').val(tweet);
}

/**
 * Callback for hover in function
 */
function highlight() {

  var tweet_style_focusin = {
    'width' : '600px',
    'height' : '50px',
    'border' : '3px solid #cccccc',
    'padding' : '5px',
    'font-family' : 'Tahoma, sans-serif',
    'background-image' : 'url(bg.gif)',
    'background-position' : 'bottom right',
    'background-repeat' : 'no-repeat'
  };

  $(this).css(tweet_style_focusin);

  $(this).focus();

}

/**
 * Callback for hover out function
 */
function dim() {
  var tweet_style_foucsout = {
    'width' : '600px',
    'height' : '50px',
    'border' : '1px solid #cccccc',
    'padding' : '5px',
    'font-family' : 'Tahoma, sans-serif',
    'background-image' : 'url(bg.gif)',
    'background-position' : 'bottom right',
    'background-repeat' : 'no-repeat'

  };

  $('#edit-tweet').css(tweet_style_foucsout);
}

答案 2 :(得分:0)

我不认为这是可能的,但我会使用另一种方法。您可以在textarea下为主文本添加一个禁用的textarea或简单的div。

<textarea name="blabla"><textarea>
<div class="signature">signature</div>

而不是后端的工作。

我不知道你在用什么。

所以对于像这样的PHP:

<?php $_POST['blabla'] .= $signature ?>

在这样的轨道:

def some_action
  params[:blabla] << signature
end

这样用户无法以任何方式更改签名。即使你发现一个有效的jQuery解决方案,它总是不安全,因为用户可以更改javascript代码,或者完全禁用它,而不是用户能够更改他的签名。

恕我直言,服务器端方法是最好的方法。

答案 3 :(得分:0)

我会在div下创建一个宽度完全相同的textarea。我会尝试通过确保边框和背景一致并消除textarea的下边框和{{1的上边框 - 尽可能使它们看起来像一个实体textarea使用CSS。