我对这个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 :(得分:0)
第一个代码是为selector $('#list_count')创建一个事件处理程序,很可能是表单元素。第二个代码是在该元素上调用submit方法。当您使用任何方法提交表单时会触发第一个,但它本身不会提交表单。你想做什么?
修改强>
你想这样做吗
$('#select_dropdown').change ( function(){
$.post("process.php", { name: "John" }, function(data) {
alert("Data Loaded: " + data);
});
});
答案 1 :(得分:0)
以下是您可以做的事情:
$("#form_to_submit").submit(function(){
//do your post stuff here
});
$('#select_dropdown').change ( function(){
$("#form_to_submit").submit()
});
我在做的是:
form_to_submit
select_dropdown
上进行选择时定义操纵者,即使在表单上也会调用提交。=================
如果你有代码
$('#list_per_page').change ( function(){
$('#list_count').submit( function(event){
alert('It Works!');
});
});
和
$('#list_count').submit();
然后它会起作用。原因是要显示“It Works”,您需要触发提交事件。
第一个块是在更改事件发生时向submit事件添加处理程序。因此,当#list_per_page
更改时,会将提交事件处理程序添加到#list_count
元素。
第二个块就是在#list_count上发送提交;因此,调用您在第一个块中添加的处理程序。
请记住,evens是异步发生的,好像你希望你的代码顺序运行。
上面的代码不能解决您的问题;它仅用于演示目的。请告诉我们您想要达到的目标,然后人们可以建议一些最佳实践来帮助您: - )