对每个复选框/下拉列表的更改强制POST

Forcing a POST on every checkbox/dropdown change

本文关键字:POST 下拉列表 复选框      更新时间:2023-09-26

如何强制对复选框(表单内)或下拉菜单选择进行任何更改,以使浏览器发出HTTP POST?

带宽不是问题,页面重新加载不是问题,我不想走完整的AJAX路线。

我真正想要的是当用户点击复选框(或从下拉菜单中选择某个内容)等时进行HTTP POST,而无需在更改后点击"提交"。

也许应该在客户端使用一些JavaScript?(我无法成功地用谷歌搜索任何东西)

使用Javascript。将onchange="document.getElementById('myFormId').submit()"添加到元素中,或通过程序执行此操作。myFormId必须替换为form元素的HTML id。

您可以使用JavaScript onchange事件来调用表单上的submit()函数。

如果已经设置了一个表单,只需将一个类放在要用作触发器的元素中,然后用于选择

$(".classname").change(function(){
$("#formid").submit();
});

用于复选框/无线电

$(".classname").click(function(){
$("#formid").submit();
});

AFIK没有客户端脚本就无法完成。最简单的方法是为每个表单更改触发submit事件。使用jQuery,它使用以下代码完成:

<script type="text/javascript">
$(function() {
    $("input[type=checkbox],input[type=radio],select").change(
      function(evt)){evt.target.form.submit();}
    );
});
</script>

如果不使用jQuery,则必须编写一些样板事件处理代码。有关JavaScript事件处理的更多信息,请参阅本简介。