通过表单发送 AJAX 数据的最佳实践 - 取回值

Posted

技术标签:

【中文标题】通过表单发送 AJAX 数据的最佳实践 - 取回值【英文标题】:Best practice for sending AJAX data via form - retrieving value back 【发布时间】:2010-10-14 11:42:51 【问题描述】:

我有一个小表单,我希望在更改时更新我的​​选择框的值,这可以通过以下方式完成:

$("form#updateclient select").change(function() // use one selector for all 3 selects
    $.post("inc/process-update.php",
        // data to send
        completed: $("select#completed").val(),
        hours:     $("select#hours").val(),
        update_id: $("#u_id").val(),
        who:       $("select#who").val()
    , function(data) 
        // do callback stuff with the server response 'data' here
    );
);

但是我有一个输入文本字段,用户可以在其中输入小时数,当他们点击开箱时,然后将该 AJAX 请求发送到 PHP 页面。

#completed 字段现在是一个复选框,它的传递是否与输入相同?这将如何与 jQuery 一起使用,所以如果您选中或取消选中发送该信息并更新数据库

我现在一直在尝试研究的是从服务器检索这些值并使用 AJAX 在页面上更新它们的最佳方法是什么。因此,一旦我更新我的下拉列表,它将保持相同的结果。

有什么想法吗?

【问题讨论】:

对不起?你的问题很混乱。 【参考方案1】:

#completed 字段现在是一个复选框,它的传递是否与输入相同?

没有。复选框的 .value(由 jQuery 的 val() 方法使用)始终是 value="..." 属性中的字符串(如果省略,则默认为“on”),无论它是否被勾选。要获得复选框的有效值,您需要查看“.checked”属性。例如。

var v= element.checked? element.value : '';

此外,您不能使用 onchange 处理程序来检测复选框何时更改,因为 IE 不会触发该事件。相反,您必须对该元素使用 onclick。

【讨论】:

以上是关于通过表单发送 AJAX 数据的最佳实践 - 取回值的主要内容,如果未能解决你的问题,请参考以下文章

从 Spring 控制器方法发送 Json 响应的最佳实践

通过ajax发送未选中的复选框值

如何捕获表单值并通过电子邮件作为 ajax 请求发送?导轨

来自ckeditor textarea的ajax表单提交值之后没有通过邮件发送

Ajax+Node.js前后端交互最佳入门实践(05)

从表单中获取所有值并通过Ajax将其发送到页面