2011-10-17 32 views
2

我有一個包含多個評論框的頁面。當有人點擊評論框的提交按鈕時,JQuery處理提交併發佈評論。然後我想將評論框中的文字設置爲空。我使用的是這樣的:如何使用JQuery在具有多個表單的頁面上選擇單個文本元素

$('.formstyle').submit(function() {   
    $.post("/messages/", $(this).serialize()); 
    return false; 
}); 

我知道有是.reset()選項,但仍然沒有告訴我如何訪問在許多單個文本元素。我可以使用$(":input[name=new_message]").val('');來設置頁面上所有文本框的文本,但如果有人有他們沒有提交的消息,這可能會令人討厭。我會認爲沿着this.(":input[name=new_message]").val('');的方向行事,但沒有骰子。我想我只是沒有連接this(或更可能是$(this))和輸入選擇器之間的點。

+1

是否存在多個評論框,每個評論框都有自己的提交按鈕或多個評論框,並且都有一個提交按鈕? –

+0

帶有單獨提交按鈕的獨立表單。在我提交這個問題之後,我實際上已經想出了它(在搜索_forever_之後)。我只是將'this'作爲上下文傳遞給選擇器,並使用'$(「input [name = new_message]」,this).val('');'。像魅力一樣工作。 Stackexchange告訴我,我無法在8個小時內回答自己的問題,所以我必須等待結束。 – user1000048

+0

或接受下面的答案之一。你可能最終自己找到了答案,但這並不意味着人們沒有花時間給你。 –

回答

1

你可以簡單地使用: -

$('.formstyle').submit(function() {   
    $.post("/messages/", $(this).serialize()); 
    $(this).find('input[name=new_message]').val(''); 
    return false; 
}); 
+0

我對你的答案做了一個小改動。我添加了':'來創建'$(this).find(':input [name = new_message]').val('');'它的效果很好。謝謝你的回答,這真的讓我很困擾。 – user1000048

2

嘗試:

$(":input[name='new_message']",this).val(''); 

$()的第二個參數定義選擇一個背景下,這樣的選擇將只有輸入匹配表單內火災提交

+0

這與我最後做的事情類似(在我上面的評論中提到)。謝謝。 – user1000048

+0

有趣的是,當我使用你的解決方案時,該帖子似乎只能在第一次運行。它將在此之後清除文本,但不會提交第二條評論。有任何想法嗎? – user1000048

+0

我很確定我的建議不會阻止任何表單提交。 –

0

如果您有多個<form> s,this將指明具體是哪個tted。您只能使用$(this).find(':input[…]').val('')重置該表單中的字段。

相關問題