簡體   English   中英

使用jQuery捕獲文本區域的文本值

[英]capturing the text value of a textarea with jQuery

我的頁面上有一堆具有相同“名稱”屬性的<textarea>元素。 我正在嘗試捕獲當前關注的文本區域的文本:

$('body').on('click', '[name=btnAddQuestion]', function () {

    questionText = $("[name=stem]").val();
    console.log('questionText: ' + questionText);

});

但是我只能獲取它來捕獲列表中第一個<textarea><textarea> 有沒有一種方法,而不必給每個文本框唯一的ID?

謝謝!

這是一個jsfiddle:

http://jsfiddle.net/9b2XA/2/

嘗試使用:focus選擇器。

$("[name=stem]:focus").val();

您實際上可以簡單地執行以下操作:

$(document.activeElement).val();

編輯:實際上,自從單擊按鈕后,textarea失去了焦點,這實際上是行不通的。 我寫得太快了。

但是,您可以做的是跟蹤最后一個具有焦點的textarea ,並在單擊處理程序中使用它。

var lastFocusedTextArea = null;

$('textarea[name=stem]').focus(function (e) {
    lastFocusedTextArea = e.currentTarget;
});

按下按鈕后,文本區域將失去焦點,因此:focus選擇器對您沒有好處。

單擊按鈕后,可以將焦點設置回最后一個文本區域,然后使用:focus選擇器提取文本。

http://jsfiddle.net/9b2XA/3/

在此小提琴中,我捕獲了最后一個聚焦的文本區域,然后在單擊按鈕時將其聚焦回去。

var lastFocus;
$("textarea").blur(function() {
    lastFocus = this;
});

$('body').on('click', '[name=btnAddQuestion]', function () {

    if(lastFocus) { lastFocus.focus(); } 
    questionText = $("[name=stem]:focus").val();
        console.log('questionText: ' + questionText);

});

使用此代碼:

$('body').on('click', '[name=btnAddQuestion]', function () {    
  questionText = $("[name=stem]:focus").val();
  console.log('questionText: ' + questionText);    
});

更新:

就像其他人在這里提到的那樣,單擊按鈕時,您的文本區域失去了焦點,因為按鈕現在擁有了它,在這種情況下,您必須保留最后一個焦點元素並在單擊處理程序函數中使用它:

var lastFocusedTextArea = null;

$('textarea[name=stem]').focus(function (e) {
    lastFocusedTextArea = e.currentTarget;
});

$('body')。on('click','[name = btnAddQuestion]',function(){if(lastFocusedTextArea.is('textarea')){questionText = lastFocusedTextArea.val(); console.log(' questionText:'+ questionText);}});

如果要獲取每個文本區域的文本,則需要遍歷它們:

$("[name=stem]").each(function() {
     questionText = $(this).val();  
     console.log('questionText: ' + questionText);
});

如果您要獲取用戶單擊按鈕時焦點所在的文本的引用,則必須將blur事件處理程序附加到所有文本區域,並記錄“最后焦點”的文本區域(因為焦點當用戶點擊按鈕時將發生變化)

您可以將最后聚焦的textareas文本存儲在變量中,然后在單擊按鈕時執行所需的操作:

$(document).ready(function () {
    var txt = '';
    $('textarea[name="stem"]').blur(function () {
        txt = $(this).text();
    });
    $('input[name="btnAddQuestion"]').click(function () {
        alert(txt);
    });
});

暫無
暫無

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

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