2013-04-26 41 views
0

我想知道如何得到的jQuery提供的submit callback一個form,因爲我有n個單頁上的形式,以COMMUN類manydata-id屬性附加到每種形式。如何讓jQuery的形式提交回調

我需要找回這個data-id以及form在這個回調中的輸入,否則我不能,因爲他們只是有一個cummon類。

我要尋找類似的東西:

$('form.many').submit(function(e) { 
     console.log($(this).data('id')); //Desn't work 
     console.log($(this).serializeArray()); //Desn't work 
     return false; 
    }); 

HTML

<form class="many" data-id="1"> 
    <textarea>TEST_1</textarea> 
</form> 

<form class="many" data-id="2"> 
    <textarea>TEST_2</textarea> 
</form> 

//... 

我得到[]$(this).serializeArray();如何獲得textarea的內容?

+0

你能向我們展示了HTML?這可能會起作用... – 2013-04-26 04:41:49

+1

看起來不像一個問題,那裏有其他問題。 http://jsfiddle.net/EZQFc/ – PSL 2013-04-26 04:45:59

+0

嗨魯多,我不知道這是可能的$ .submit。你可能想嘗試使用$ .ajax來完成這個帖子,在那裏有一個非常乾淨的方式來通過回調獲取結果 – 2013-04-26 04:48:30

回答

0

看看這個小提琴http://jsfiddle.net/sarfarazdesigner/6CvU7/ 我認爲你必須在你的HTML代碼中的錯誤我做一個小提琴,它會正常工作

<form> 
<div><input type="text" name="a" value="1" id="a" /></div> 
<div><input type="text" name="b" value="2" id="b" /></div> 
<div><input type="hidden" name="c" value="3" id="c" /></div> 
<div> 
<textarea name="d" rows="8" cols="40">4</textarea> 
</div> 
<div><select name="e"> 
<option value="5" selected="selected">5</option> 
<option value="6">6</option> 
<option value="7">7</option> 
</select></div> 
<div> 
<input type="checkbox" name="f" value="8" id="f" /> 
</div> 
<div> 
<input type="submit" name="g" value="Submit" id="g" /> 
</div> 
</form> 

$('form').submit(function() { 
console.log($(this).serializeArray()); 
return false; 
}); 
0

試試這個代碼:

$(document).ready(function(){ 
    $('form.many').submit(function(e) { 
     console.log($(this).data('id')); //Desn't work, 
     //if data is defined then it will work 
     // or use attr if you have given id to your from element 
     console.log($(this).serializeArray()); //Desn't work 
     return false; 
    }); 
}); 

您必須檢查其HTML你的網頁像

<form class="many" action="" data-id="frmUpdate"> 

</form> 

也檢查你包括jQuery使用它之前。

0

這樣做有幫助嗎?

var data = {}; 
$.each($('form.many').serializeArray(), function(i, field) { 
    data[field.name] = field.value; 
});