我正在开发一个加载项目列表的项目,用户需要能够更改此项目列表的属性。
基本上,我在一个带有预加载选项的表单上有 50 个选择框。我只想提交用户选择更改的选择框的值。我知道我知道我需要使用 on change 属性并提交它。但是,我如何仅提交更改的单个元素的值?
我正在开发一个加载项目列表的项目,用户需要能够更改此项目列表的属性。
基本上,我在一个带有预加载选项的表单上有 50 个选择框。我只想提交用户选择更改的选择框的值。我知道我知道我需要使用 on change 属性并提交它。但是,我如何仅提交更改的单个元素的值?
一种快速的'n'dirty 方法是将每个单独的选择框包装在它们自己的表单元素中,每个表单都有一个独特的 POST 操作。
一种更简洁的方法是创建一个隐藏表单,其中包含用户更改的 selectBox 的隐藏字段和他们更改为的值的隐藏字段。工作流程是:用户更改选择框 -> 更新隐藏字段 -> 提交隐藏表单。
OnChange 使用 Ajax 仅使用 GET 将选择框的值发送到您的端点。
假设 Jquery(但任何库或本机 JS 都可以)
一些脏代码(时间限制)可以帮助您入门:
var selVal = $("#myselect").val();
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
url: "url-that-will-handle-the-data",
data: '{ "param1": selVal }',
success: function (msg) {
alert(msg.d);
}
});