[英]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:
嘗試使用:focus選擇器。
$("[name=stem]:focus").val();
您實際上可以簡單地執行以下操作:
$(document.activeElement).val();
編輯:實際上,自從單擊按鈕后,textarea失去了焦點,這實際上是行不通的。 我寫得太快了。
但是,您可以做的是跟蹤最后一個具有焦點的textarea
,並在單擊處理程序中使用它。
var lastFocusedTextArea = null;
$('textarea[name=stem]').focus(function (e) {
lastFocusedTextArea = e.currentTarget;
});
按下按鈕后,文本區域將失去焦點,因此:focus選擇器對您沒有好處。
單擊按鈕后,可以將焦點設置回最后一個文本區域,然后使用:focus選擇器提取文本。
在此小提琴中,我捕獲了最后一個聚焦的文本區域,然后在單擊按鈕時將其聚焦回去。
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.