2010-02-19 95 views
3

我有一個輸入框,它調用模糊和焦點上的函數「inputInlineHint(self)」。 它還傳遞了自我......JQuery獲取元素的值:onfocus =「inputInlineHint(self);」

<input type="text" id="one" class="textbox" value="Your Name" onfocus="inputInlineHint(self);" onblur="inputInlineHint(self);" /> 

現在我想檢索字段的當前值:

function inputInlineHint(e) { 

    var theValue = ''; 

    //Now i need to retrieve the value... but how? 
} 

我希望你們能幫助我與...應該是很基本,但我是新來jquery。

在此先感謝!

回答

5
  1. 通過this不是selfself未定義。
  2. 將變量從e重命名爲其他內容。 e傳統上用於接收事件對象,但你不分配功能爲事件處理
  3. whatever_you_renamed_e_to.value
+0

非常感謝。這就是我一直在尋找的! – n00b 2010-02-19 11:04:53

4

看到,因爲你已經標記與jQuery你的問題,jQuery的解決辦法是這樣的這樣的:

$(document).ready(function() { 
    $('#one').blur(function() { 
     var val = $(this).val(); 
     // rest of processing, etc. 
    }) 
    .focus(function() { 
     var val = $(this).val(); 
     // rest of processing, etc. 
    });  
}); 
+0

你應該使用$(function(){});而不是$(document.ready(function(){});,它被認爲是更好的做法(節省一些字節;) – 2010-02-19 10:32:21

+0

謝謝你! – n00b 2010-02-19 11:05:59

4

你好得多使用jQuery的綁定功能,而不是寫劇本的名字進入控制:

 
$(function() { 
    $('#one').focus(function() { 
     var value = $(this).val(); /// this is now the value 
    }).blur(function(){ 
     var value = $(this).val(); /// same again 
    ); 
);

+0

我將在未來做到這一點...現在我將使用這個快速和骯髒的解決方案! – n00b 2010-02-19 11:07:38

+0

好吧,你只是設置自己的維護頭痛。此外,你在做什麼不是真的歸類爲jQuery,更多隻是javascript。 – 2010-02-19 11:18:36

+0

好吧,你是對的...但不知何故,它不工作... 我收錄了jquery的最新版本以及另一個包含你的代碼的.js文件。 但是當我點擊文本字段時什麼也沒有發生(當然我提醒var值) 任何想法爲什麼? – n00b 2010-02-19 11:28:53