在我的rails应用程序中,我在表单中有一个选择字段。当字段发生变化时,我希望它提交表单,并远程检索结果。
这是我当前的代码(编辑 - 这部分有效,我正在尝试添加更多内容):
$(function() {
$("#statusFilter").live("change", function() {
this.submit();
});
});
在应用程序的不同部分,我有以下内容,对于超链接,单击时,远程返回链接。所以我对上面的表格也有同样的效果。
$(function() {
$("#posts_container th a").live("click", function() {
$.getScript(this.href);
return false;
});
});
这是另一个如何使用搜索表单的示例
$("#dash_search input").keyup(function() {
$.get($("#dash_search").attr("action"), $("#dash_search").serialize(), null, "script");
return false;
});
我试图远程刷新的内容存在于posts_container
中答案 0 :(得分:4)
如果您没有使用表单来容纳任何其他表单元素,我个人不会在此实例中使用选择字段周围的表单。
根据您的说法,您似乎正在尝试实现以下目标:
如果我有正确的话,我会编写以下代码:
选择字段
<div>
<select id="statusFilter">
<option value="1">Option 1</option>
<!-- Other options... -->
</select>
</div>
<强>的JavaScript 强>
<script type="text/javascript">
$(document).ready(function() {
$("#statusFilter").change(function() {
// Possibly show an ajax loading image $("#ajax_loading").show();
$("#posts_container").load("somepage.php", { value: $(this).val() }, function() {
// Do something to say the data has loaded sucessfully
// Possibly hide the ajax loading image $("#ajax_loading").hide();
});
});
});
</script>
我不知道这是否有帮助或是否在正确的界限,但请告诉我,如果没有,我会尽力帮助。
答案 1 :(得分:1)
试试这个
$(function() {
$("#statusFilter").live("change", function() {
//$(this).closest("form").submit();
var $form = $(this).closest("form");
$.post( {
url: $form.action,
data: $form.serialize(),
success: function(){ //Write code here to handle on success }
});
});