2012-09-12 364 views
3

我有一個表單,我不能改變,我必須從jquery處理它的提交功能。提交表單而不提交按鈕並且不刷新頁面?

表單只有單選按鈕。我希望在單選按鈕被選中時不提交頁面的情況下提交表單。

這是我試過的代碼。

$('input[type="radio"]').click(function(){ 
    if ($(this).is(':checked')) 
    { 
     $('form#my-form').submit(function(){ 
     alert('form submitted'); 
     }); 
    } 
}); 

它應該提醒「表單提交」,但它沒有。

我做錯了什麼?

+0

你對「提交」有什麼意思?你希望表單中的信息用ajax發送到某個地方,還是希望表單中的信息被添加到HTTP_POST中? – Krycke

+0

使用$ .post並使用e.preventDefault()來防止提交或使用簡單的按鈕而不是提交按鈕。是的,你需要寫一些javascript,但它的工作肯定是你的要求。 – Adrian

+0

嘗試從http://www.malsup查看ajaxSubmit。com/jquery/form/ – Adrian

回答

4

如果你想提交表單沒有頁面加載,那麼你就需要去阿賈克斯。

如果你想報警,同時提交,您需要修改我們的代碼有點..

$('input[type="radio"]').click(function(){ 
    if ($(this).is(':checked')) 
    { 
     $('form#my-form').submit(); 
    } 
}); 

$('form#my-form').submit(function(){ 
     alert('form submitted'); 
     }); 
+0

如果條件滿足,你需要調用提交函數。然後,你需要像上面所做的那樣,在它外面寫提交函數的觸發器。 – sathish

+0

這是否提交表單兩次? – Anthony

0

IF中的代碼表示:「如果表單被提交,則提醒用戶」。所以你必須在檢查無線電控制時手動提交表格。

之前關閉IF,輸入以下代碼:

$('yourForm').submit(); 
+0

如果我使用'$('form#my-form')。submit()',那麼它會提交表單,但是我不想要一個頁面刷新。 – Ahmad

+0

然後,使用Ajax。這是你唯一的方法。 – 2012-09-12 11:40:11

0

在這種情況下,你只是監聽提交事件。如果你想觸發提交事件你有加入這一行:

$('form#my-form').submit();

1

我試過jsFiddle這個例子。我的代碼將在radioButton的檢查中提交表單。

$('input[type="radio"]').click(function(){ 
    if ($(this).is(":checked")) 
     $('form#my-form').submit(); 
});​ 

如果您想提醒提交您的形式你必須添加此代碼

$("#my-form").submit(function() { 
    alert("submitting form ...");   
}); 
1

您的代碼工作得很好 - 只要確保你把這個代碼裏面的document.ready事件。

$(document).ready(function() { 
    $('input[type="radio"]').click(function(){ 
     if ($(this).is(':checked')) 
     { 
      $('form#my-form').submit(function(){ 
      alert('form submitted'); 
      }); 
     } 
    }); 
}) 

請注意,此選擇器正在查找所有單選按鈕。另外,如果你不需要刷新頁面 - 你應該添加返回false;提交功能。

但請記住,您需要先點擊單選按鈕才能讓您提交功能工作。