簡體   English   中英

單擊按鈕將Java語言寫入文本區域

[英]Javascript writing into a text area from button clicked

我想從用戶使用Javascript 或jQuery單擊的按鈕寫入文本區域

像這樣:

<html>
    <head></head>
    <body>

    <button>Q</button>
    <button>W</button>
    <button>E</button>
    <button>R</button>
    <button>T</button>
    <button>Y</button>

    <br/><br/>  

    <textarea></textarea>

    </body>
</html>

因此,用戶可以單擊此處的“ QWERTY”按鈕之一,並將其​​粘貼到下面的框中。 有沒有相對簡單的方法可以做到這一點? 我在網上查找了一些示例,但對於像我這樣的新手來說,它們全都太過分了。

如果我們可以將文本寫入button上沒有的textarea字符,那也很好


我似乎無法使它正常工作

    <html>
        <head>

        <script src="http://code.jquery.com/jquery-1.9.1.js"></script>

        <script>$('button').click(function(){        
    $('textarea').text($('textarea').text() + $(this).text());
    //$('input:text').val($('textarea').text() );
    $('input:text').val($('input:text').val() + ' ' + $(this).data('stuff'));
});

</script>

</head>
<body>

<button data-stuff='stuff_Q'>Q</button>
<button data-stuff='stuff_W'>W</button>
<button data-stuff='stuff_E'>E</button>
<button data-stuff='stuff_R'>R</button>
<button data-stuff='stuff_T'>T</button>
<button data-stuff='stuff_Y'>Y</button>
<br/><br/>  
<input type='text'/>
<br/><br/>  
<textarea></textarea>

</body>
</html>

如果您只想追加到文本區域的末尾,請使用

$('button').on('click', function(){
    var letter = $(this).text();

    $('textarea')[0].value += letter;
});

完整演示

 $(function() { $('button').on('click', function() { var letter = $(this).text(); $('textarea')[0].value += letter; }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <button>Q</button> <button>W</button> <button>E</button> <button>R</button> <button>T</button> <button>Y</button> <br/> <br/> <textarea></textarea> 

JS

$('button').click(function(){        
    $('textarea').text($('textarea').text() + $(this).text());
    //$('input:text').val($('textarea').text() );
    $('input:text').val($('input:text').val() + ' ' + $(this).data('stuff'));
});

的HTML

<button data-stuff='stuff_Q'>Q</button>
<button data-stuff='stuff_W'>W</button>
<button data-stuff='stuff_E'>E</button>
<button data-stuff='stuff_R'>R</button>
<button data-stuff='stuff_T'>T</button>
<button data-stuff='stuff_Y'>Y</button>
<br/><br/>  
<input type='text'/>
<br/><br/>  
<textarea></textarea>

單擊所有按鈕后,按OP更新需要附加附加值。

每個OP再次更新,詢問“將與按鈕標簽不同的字母寫到文本框中”。 我想使用data()獲取每個按鈕的一些數據。

小提琴

這個怎么樣:

$('button').click(function(){
     $('textarea').text( $(this).text() );
});

jsFiddle演示


如果您想進一步舉例說明,我們可以做到,以便將字母追加到文本區域,而不是覆蓋以前的內容:

var ta = $('textarea'); //cache selector for re-use (see note at bottom)
$('button').click(function(){
    ta.text( ta.text() + $(this).text() );
});

現在,讓我們添加一個按鈕以刪除文本區域。 在這里,我們為一個特定的按鈕分配一個ID並檢查它:

var ta = $('textarea');
$('button').click(function(){
    if (this.id == "eraseit"){
        ta.text('');
    }else{
        ta.text( ta.text() + $(this).text() );
    }
});

jsFiddle演示#2

筆記:

  1. 在第二個和第三個示例中,我們cached了選擇器(將引用保存到變量中)以提高速度。

每次點擊代碼$('textarea') ,都會在DOM中搜索該選擇器。 緩存選擇器會消除除初始搜索之外的所有內容。 在這個簡單的示例中根本不重要,但是在大型項目中非常有用。

  1. ID和類非常重要。 CSS和javascript / jQuery相似地使用它們來標識/選擇元素。

可以將相同的類名稱應用於多個元素(例如,多個按鈕可以具有該類),但是不允許兩個元素具有相同的ID。


針對您的問題:

var ta = $('textarea');
$('button').click(function(){
    if (this.id == "eraseit"){
        ta.text('');
    }else{
        if ( $(this).hasClass('bob') )  {
            ta.text( ta.text() + ' bob' );
        }else if ( $(this).hasClass('x') )  {
            var ans = prompt('What is your name?');
            ta.text( ta.text() + ans );
        }else{
            ta.text( ta.text() + $(this).text() );
        }
    }
});

jsFiddle演示#3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM