2011-05-21 27 views
2

我有这个jQuery代码的问题。它没有达到预期效果:jQuery内部提交功能不起作用

$('#select_dropdown').change (function(){ 
    $('#form_to_submit').submit(function(event){ 
     $.post("process.php", { name: "John" }, 
    function(data) { 
     alert("Data Loaded: " + data); 
    }); 
    }); 
}); 

然而,这个工程:

$('#select_dropdown').change (function(){ 
    $('#form_to_submit').submit(); 
}); 

我不知道为什么在提交内部功能不起作用。 当用户从下拉菜单中选择一个值时,必须提交表单。第二组代码 工作,但如果我添加一个内部函数提交,它不会。

基本上,我想在用户选择下拉菜单后做一些ajax调用。

+0

问题是与这个其他http:// stackoverflow复制。com/questions/6079546/jquery-submit-function-does-not-work-inner-function – morgar 2011-05-21 04:27:20

回答

0

第一个代码是创建一个事件处理程序,用于在选择器$('#list_count')上提交事件,最有可能是一个表单元素。第二个代码是调用该元素的提交方法。第一个会在您使用任何方法提交表单时触发,但它本身不会提交表单。你想做什么?

编辑

你想做到这一点

$('#select_dropdown').change (function(){ 
    $.post("process.php", { name: "John" }, function(data) { 
     alert("Data Loaded: " + data); 
    }); 
}); 
+0

感谢您的快速响应。我修改了我的问题并添加了完整的代码。 – markcruz 2011-05-21 03:14:44

0

这里是你可以做什么:

$("#form_to_submit").submit(function(){ 
    //do your post stuff here 
}); 

$('#select_dropdown').change (function(){ 
    $("#form_to_submit").submit() 
}); 

什么我做的是:

  1. 定义th e提交事件的处理程序form_to_submit
  2. 定义用户在select_dropdown上做出选择时的昵称,即使在表单上也会调用提交。

=================

,如果你的代码

$('#list_per_page').change (function(){ 
    $('#list_count').submit(function(event){ 
     alert('It Works!'); 
    }); 
}); 

$('#list_count').submit(); 

然后它会工作。出现“It Works”的原因是,您需要触发提交事件。

第一个块是在发生更改事件时向提交事件添加处理程序。所以当#list_per_page变化时,提交事件处理程序将被添加到#list_count元素。

第二块只是在#list_count上触发一个提交;因此,调用您在第一块中添加的处理程序。

请记住,evens是异步发生的,好像你期望你的代码顺序运行。

我上面的代码不是解决问题的方法;它仅用于演示目的。请告诉我们你想实现什么,那么人们可以建议一些最佳实践来帮助你:-)

+0

感谢您的快速响应。我修改了我的问题并添加了完整的代码。 – markcruz 2011-05-21 02:40:08

+0

我编辑了答案。 – Alvin 2011-05-21 04:22:04