【问题标题】:Populate textarea using buttons and entered text使用按钮和输入的文本填充文本区域
【发布时间】:2013-03-31 07:11:23
【问题描述】:

我正在研究一个在平板电脑上使用的概念,用户可以通过一系列快捷按钮将文本输入文本区域。当然快捷按钮并不能涵盖所有可能性,所以我想保留在文本框中正常输入文本的能力。

我遇到的问题是,在用户将焦点应用于文本区域并进行纯文本编辑后,按钮不再起作用。

<script type="text/javascript">
$(document).ready(function() {
    $("#keypad button").click(function() {
        var txt = $(this).val();
        $("#Textarea").append(txt);
        });
});

<div id="keypad">
<div id="row4">
    <button type="button" class="green45" name="Rt" value="Rt ">Rt</button>
    <button type="button" class="green45" name="Lt" value="Lt ">Lt</button>
    <button type="button" class="green45" name="Up" value="Up ">Up</button>
    <button type="button" class="green45" name="Down" value="Down ">Down</button>
    <button type="button" class="green45" name="Forward" value="Forward ">Forward</button>
    <button type="button" class="green45" name="Back" value="Back ">Back</button>
</div>

我创建了这个小提琴来演示问题http://jsfiddle.net/J228n/2/。首先使用按钮输入一些文本,然后正常输入一些文本,然后再次尝试使用按钮。

【问题讨论】:

    标签: jquery textarea


    【解决方案1】:
    $("#keypad button").click(function() {
        var txt = $(this).val();
        $('#Textarea').val(function(i,val){
            return val + txt;
       });
    });
    

    jsFiddle

    您需要使用.val() 函数,并从按钮返回旧值+ 文本。

    【讨论】:

    • 简单!感谢大家的回答。
    【解决方案2】:

    试试这个:

    $("#keypad button").click(function() {
            var txt = $(this).val();
            var old =$("#Textarea").val();      
            $("#Textarea").val(old+txt);
    });
    

    【讨论】:

      【解决方案3】:

      效果很好:

      $("#keypad button").click(function() {
              var txt = $(this).val();
              $("#Textarea").val($("#Textarea").val()+txt);
      });
      

      【讨论】:

        猜你喜欢
        • 2012-02-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多