2010-10-12 113 views
0

我有一個表單,我正在使用Jquery提交表單,以在屏幕右側創建預覽輸出(I有一些複雜的輸入,並希望使用紅寶石來處理它們來創建預覽)。定期提交表單提交/重定向提交按鈕與JQuery提交其他輸入(驗證)

在用戶完成表單並按下提交按鈕後,我希望表單正常提交(即,就好像沒有使用Jquery一樣)。有沒有辦法做到這一點?

我覺得這個答案可能很簡單,我完全錯過了一些東西。


這裏是我如何提交選擇按鈕(審定)

$('#body_message select').change(function() { 
     $('form').submit(); 
     }); 

這是我處理的提交按鈕當前的代碼。當用戶點擊提交按鈕時,我更改ID爲「message_submit_button」的隱藏字段的值,因此此提交將與驗證提交的處理方式不同。

$('#body_message input[type="submit"]').click(function() { 
     $('#body_message #message_submit_button').val("1"); 
     $('form').submit(function(){ 
      $.ajax({ 
       type: 'POST', 
       url: $(this).attr('action'), 
       data: $(this).serialize(), 
       success: XMLHttpRequest.getResponseHeader("Location"), 
       dataType: "html" 
      }); 
      return false; 
     }); 

    }); 



編輯: 使用答案的第一部分,我已經改變了Jquery的在我的提交按鈕的下面,並且它可以作爲期望:

$('#body_message input[type="submit"]').click(function() { 
     $('#message_submit_button').val("1"); 
     $('form')[0].submit();  
}); 

回答

3

你可以通過調用原生form.submit()功能繞過jQuery .submit()處理程序,如下所示:

$('form')[0].submit(); 

我會改變這樣的:當提交

$('#body_message input[type="submit"]').click(function() { 
    $('#message_submit_button').val("1"); 
    var form = $(this).closest("form") 
    $.ajax({ 
    type: 'POST', 
    url: form.attr('action'), 
    data: form.serialize(), 
    success: XMLHttpRequest.getResponseHeader("Location"), 
    dataType: "html" 
    }); 
    return false; 
}); 
在其他按鈕

然後...只是什麼都不做,它會正常提交,這樣,這個處理程序處理只有這個提交按鈕,而不是其他人應該做正常的提交。

+0

是的!非常感謝。你說的第一件事情非常出色(包括更新的問題)。 – amt1983 2010-10-12 11:40:45