2013-03-22 33 views
0

我不想要type =「submit」,因爲它改變頁面 -
我正在提交通過ajax ..所以我使用type =「button 「確定哪個按鈕在HTML表單中被點擊 - 不是提交類型

<input type="button" value="This is a submit button" name="submit1" onClick="submitMe(this.form)"> 
<input type="button" value="Another submit button" name="submit2" onClick="submitMe(this.form)"> 
<input type="button" value="Yet another submit button!" name="submit3" onClick="submitMe(this.form)"> 

但是,所有的按鈕名稱顯示爲通過表單變量 - 我期望只點擊的按鈕被傳遞,就像複選框或提交按鈕...(如果它不選擇 - 不通過它)

我該如何確定WHICH按鈕被選中 - 我需要這個,因爲根據按鈕動作會有所不同。

使用原型'AJAX.UPDATER'來處理表單。

的JS看起來像這樣...

function submitMe(frm) { 
    var div = 'msgDiv'; 
    var url = 'mypage.aspx'; 
    var pars = Form.serialize(frm); 
    var myAjax = new Ajax.Updater(div, url, { asynchronous:true, method:'post', parameters:pars }); 
} 

THX

回答

1

你應該使用observe種或on()方法,而不是正常onclick屬性 - 爲你的HTML給它「myForm會」的「click」事件會冒泡的id了從加個班

<input type="button" value="This is a submit button" class="submitbutton" name="submit1" > 
<input type="button" value="Another submit button" class="submitbutton" name="submit2" "> 
<input type="button" value="Yet another submit button!" class="submitbutton" name="submit3" > 

如果附加觀察員的形式將按鈕添加到父窗體中,並且可以查找通過使用findElement()方法對傳遞的事件進行點擊所產生的按鈕。在這種情況下,我會使用on()方法,因爲您可以指定一個CSS選擇器來限制事件處理的範圍。否則,每次點擊都會觸發處理程序。

$('#myform').on('click','.submitbutton',function(event){ 
    var clickedbutton = event.findElement(); 

    //then you can fire your submitMe() function 
    submitMe(this); 
}); 
on()方法 this

是被觀察

1

你可以做這樣的事情:

​​

,然後在你的JS

submitMe(id){ 
    switch(id) 
    { 
    case 'a': 
    ----- 
    break; 
    case 'b': 
    ----- 
    break; 
    } 
} 
+0

問題是我已經通過表格... submitMe(this.form); submitMe(frm){variams = Form.serialize(frm);}。 ... } – jpmyob 2013-03-22 16:45:40

+0

mmm如果你只傳遞「this」,並在你的函數中取「form」和「id」? – Mikeroguez 2013-03-22 16:49:40

+0

類似 - submitMe(this.form,this.id)???? – jpmyob 2013-03-22 16:51:04

0

在HTML代碼,你可以使用id屬性,而不是名稱和點擊的按鈕ID傳遞給函數的元素...

<input type="button" value="This is a submit button" id="submit1" onClick="submitMe(this.id)"> 
<input type="button" value="Another submit button" id="submit2" onClick="submitMe(this.id)"> 
<input type="button" value="Yet another submit button!" id="submit3" onClick="submitMe(this.id)"> 

然後在你的JS,你可以得到formId由...

function submitMe(eleId) { 
    var clickedButton = eleId // use it as you want 
    var frm = $(eleId).up('form'); // this will give the parent form 
    var div = 'msgDiv'; 
    var url = 'mypage.aspx'; 
    var pars = Form.serialize(frm); 
    var myAjax = new Ajax.Updater(div, url, { asynchronous:true, method:'post', parameters:pars }); 

}

相關問題