2011-05-21 58 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