2012-09-12 332 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;提交功能。

但请记住,您需要先点击单选按钮才能让您提交功能工作。