2013-06-24 69 views
0

我有一個jQuery函數是這樣的:jquery表單提交不成功?

$(function(){ 
    function unshareDialog(event) { 
     $("#dialog-confirm").dialog({ 
      resizable: false, 
      height:200, 
      width: 365, 
      modal: true, 
      buttons: { 
       "Unshare": function() { 
        $('#unshare_form').submit(); 
       }, 
       Cancel: function() { 
       $(this).dialog("close"); 
       } 
      } 
      }); 
      return false; 
    } 
    $('#unshare_entire_file').click(unshareDialog); 
}); 

我的表單有兩個提交按鈕這樣的:

<form action="/unshare/" id="unshare_form" method="post"> 
    <input type="submit" value="Unshare" name="unshare_to_user" id="unshare_to_user" /> 
    <input type="submit" value="Unshare" id="unshare_entire_file" 
name="unshare_entire_file" /> 
</form> 

在服務器我做這樣的:

if request.POST.get('unshare_entire_file'): 
    ...unshare for file 
else 
    ..unshare for user 

但當我使用jQuery提交表單時,這是行不通的。我想知道哪個提交按鈕被點擊並相應地處理。我怎樣才能做到這一點?

+1

意味着什麼「這行不通」 ??? –

+0

這裏你試圖提交一個ID爲unshare_form的表單,但是你沒有任何帶有這個ID的表單,它是從複製代碼的錯字? – maqjav

+0

@maqjav:我只複製表單的提交按鈕。我已在最新的問題中包含表單。 – pynovice

回答

0

這樣的事情呢?

$(function() { 
    function unshareDialog(event, elem) { 
     event.preventDefault(); 
     var input = $("<input>").attr("type", "hidden").attr("name", elem.attr("id")).val(1); 
     $("#unshare_form").prepend(input); 
     $("#dialog-confirm").dialog({ 
      resizable: false, 
      height: 200, 
      width: 365, 
      modal: true, 
      buttons: { 
       "Unshare": function() { 
        $("#unshare_form").submit(); 
       }, 
       Cancel: function() { 
        $(this).dialog("close"); 
       } 
      } 
     }); 
     return false; 
    } 
    $('#unshare_entire_file,#unshare_to_user').click(function (e) { 
     unshareDialog(e, $(this)); 
    }); 
}); 

這顯然不是最佳的,但它應該工作