我趕上形式的數據異步引用輸入使用以下方式Twitter的引導創建。 ..我試圖$ form.username,$ form ['用戶名'],但無濟於事,我無法找到如何獲得輸入。我知道我可以使用具體形式
但由於我已經有了表單對象,我想盡可能使用它。
感謝
我趕上形式的數據異步引用輸入使用以下方式Twitter的引導創建。 ..我試圖$ form.username,$ form ['用戶名'],但無濟於事,我無法找到如何獲得輸入。我知道我可以使用具體形式
但由於我已經有了表單對象,我想盡可能使用它。
感謝
內,您的提交處理程序,將輸入username
場可以簡單地引用:
this.elements['username']
無需花哨的jQuery的:)
更新
沒有實現elements
是一個相當新的增加。在此之前,你可以使用:
this.username
更新2
一個勻版本是這樣的:
var field = this.elements ? this.elements['username'] : this.username;
我做了50000次迭代的測試......你的解決方案需要〜400ms,.find()需要〜5500ms,contexty需要〜7000ms。所以我最喜歡這個,但是你能否詳細說明「最近的增加」?我怎樣才能確定我的代碼在哪些瀏覽器上工作? – Marin
@Marin在'.elements'之前,輸入框將是表單元素本身的屬性,所以應該仍然有效。這可以被刪除。 –
您可以使用.find()
:
var $input = $form.find('input[name=bla]');
編輯 —評論員傑克指出,另外還有HTML5 「要素」 的形式DOM元素的屬性。這可以讓您通過名稱或ID或數字索引進行輸入。
var input = this.elements['bla'];
按名稱訪問是由一個事實,即該機構還認爲元素「ID」屬性(其實那些優先考慮,我認爲)複雜。
簡單的JavaScript發生了什麼? ;-) –
@Jack很好處理表單輸入的字段名稱變成表單屬性的處理DOM元素並不是真正的標準,我認爲這是一個可怕的想法,因爲與其他重要表單屬性發生衝突的明顯問題。然而,HTML5的「元素」屬性。 – Pointy
哦,沒有意識到'elements'是一個HTML5屬性;-) –
您可以使用表單對象作爲context with selector來查找上下文中的元素。
語法:jQuery(selector [ , context ] )
$('input[name=bla]', $form);
你可以使用這個,因爲它代表了你的形式。
$('form[data-async]').live('submit', function(event) {
$('input[name=bla]', this); // this is your form
})
你可以發佈一些相關的標記 – Rafay
順便說一句,'.live()'已被棄用,以支持'.on()'。 –