2013-01-06 27 views
0

標記接收用戶輸入文本字段的數據

<div id="tool_wrapper"> 
Tip: <input class="input_mod" id="tip_tip" type="text"/> 
Text: <input class="input_mod" id="text_tip" type="text" /> 
<input type="submit" class="modbutton" id="sub_tip" /> 
</div> 

jQuery的

$(function(){ 
    var a = $('#tip_tip').text(); 
    var b = $('#text_tip').val(); 
    var text = $('#text_editor_textarea'); 
$('#sub_tip').click(function(e){ 
    e.preventDefault(); 
    text.val(text.val()+'[mod=' + a + ']' + b + '[/mod]'); 
    }); 
}); 

好了,所以上面的jQuery的var avar b一個是.text();,另一個是.val()我知道我想要的狀態我已經嘗試了這兩個然後我也試過這個

$(function(){ 
    var a = $('#tip_tip').val(function(){ 
     $(this).text() 
}); 
    var b = $('#text_tip').val(function(){ 
     $(this).text() 
}); 
    var text = $('#text_editor_textarea'); 
$('#sub_tip').click(function(e){ 
    e.preventDefault(); 
    text.val(text.val()+'[mod=' + a + ']' + b + '[/mod]'); 
    }); 
}); 

這讓我更遠,則第一的jQuery雖然呈現的標記看起來像這樣

[mod=[object Object]][object Object][/mod]

這當然不是我想要的。有什麼建議麼?

+0

'[object Object]'是JavaScript對象的字符串表示,所以出於某種原因'a'和'b'不是你期望的那樣。如果在點擊回調中執行'console.log(a,b);',那麼在控制檯中會得到什麼? –

+0

第一個jquery代碼片段有什麼問題? – sbmaxx

+1

當然你會編輯它後,我要求不要馬特 – EasyBB

回答

3

你可以試試這個

$(function(){ 
var text = $('#text_editor_textarea'); 
$('#sub_tip').click(function(e){ 
    e.preventDefault(); 
    var a = $('#tip_tip').val(); 
    var b = $('#text_tip').val(); 
    text.val(text.val()+'[mod=' + a + ']' + b + '[/mod]'); 
    }); 
}); 

Demo

+0

好吧,所以我看着它,爲什麼這個工作,而不是上面.val()?是因爲它不在.click()函數中嗎? – EasyBB

+0

@EasyBB,是的,因爲這些變量在點擊處理程序之外,並初始化爲空,並且爲了獲得「文本框」的值,您應該使用val而不是text。 –

+0

是啊,這是我的想法,但在嘗試我的第一個片段後,我是heck我會嘗試.text()哈哈。但是,我現在看到var。a和b在.click函數ok之前運行。謝謝,我現在明白了。我試圖接受,但我猜想在接受 – EasyBB

相關問題