2012-06-20 44 views
1

我有我的表格上兩個簡單的提交按鈕,這只是正常工作:jQuery的。點擊()函數 - 不發送值

<button id="accept" type="submit" name="accept" value="accept">Accept</button> 
<button id="decline" type="submit" name="decline" value="decline">Decline</button> 

然而,問題則可以查看通過直接轉到頁到URL,或者偶爾顯示在一個模式對話框,這是我用下面的jQuery設置:

dialog.dialog({ 
    buttons: [ 
     { 
      text: "Decline", click: function() { 
       $('#decline').click(); 
       dialog.dialog('close'); 
      } 
     }, 
     { 
      text: "Accept", click: function() { 
       $('#accept').click(); 
       dialog.dialog('close'); 
      } 
     } 
    ] 
}); 

dialog.load(url + '&ajax=1'); 

此提交表單蠻好的,它除了檢測到來自竟是元素的所有公告信息點擊。因此,例如,如果您加載表單,然後單擊#decline按鈕,則會發布該信息,但jQuery並非如此。

謝謝

回答

3

小心使用對話框,因爲它們不會使您的輸入等待提交操作。只要你點擊提交被觸發。 您應該使用類型按鈕的輸入,而不是使用$(form).submit()方法提交和管理提交。它可能會解決你的問題

編輯:回答您的評論:

<style> 
.submitbutton{ 
    text-align:center; 
    font-weight:bold; 
    /* you can do whatever you like here */ 
}​ 
</style> 
<div id="dialog"></div> 
<form id="myform"> 
<input id="accept" class="submitbutton" type="text" value="Accept button" name="accept" value="accept"/> 
<input id="decline" class="submitbutton" type="text" value="Decline button" name="decline" value="decline"/> 

</form>​ 
<script> 
$('#accept,#decline').click(function(e){ 
    alert('you clicked #'+$(this).attr('id')); 
    //you can do whatever you want here as you know which button was pressed. 
    // to add more information in your form : 
    $('#myform').append($("<input>").attr("type", "hidden").attr("name", "newhiddendata").val("something")); 
    $('#myform').submit(); 
}); 

var dialog= $('#dialog'); 
dialog.dialog({ 
    modal:true, 
    buttons: [ 
     { 
      text: "Decline", click: function() { 
       dialog.dialog('close'); 
       $('#decline').click(); 

      } 
     }, 
     { 
      text: "Accept", click: function() { 
       dialog.dialog('close'); 
       $('#accept').click(); 
      } 
     } 
    ] 
}); 
​ 
</script> 

http://jsfiddle.net/techunter/KPu7G/

這真是生,無CSS可言,但你看到這一點。

+0

謝謝,我最初有按鈕作爲輸入,但我在IE8中遇到了嚴重的問題,也意味着我無法在每個按鈕旁邊放置圖標/圖像! :-) 如果我使用$(form).submit()管理提交,它將如何知道我按下了哪個按鈕?再次感謝 – Nick

+1

更新我的jsfiddle,檢查出來 – TecHunter

+0

啊,太棒了,謝謝:) – Nick

0

嘗試:

dialog.dialog({ 
    buttons: { 
      "Decline": function() { 
       $(this).dialog("close"); 
      }, 
      "Accept": function() { 
       $(this).dialog("close"); 
      }   
     } 
}); 
+0

謝謝,但是,這個按鈕如何提交表單? :) – Nick

+0

$(your_form).submit(); – chrisvillanueva

+1

謝謝,但那麼表單將如何知道哪個按鈕被按下? – Nick

1

添加一個隱藏的元素到窗體,並單擊按鈕時,有它設置元素的值就提交表單之前。

+0

謝謝,我在想這可能是最好的選擇! – Nick