JQuery ajax 调用重置所有表单字段

标签 jquery ajax forms

我一直在使用验证码在我的网站上开发联系表单。可以在此处查看示例:

contact form

几年前,如果用户需要重新加载验证码图像,我当时唯一的选择就是重新加载整个表单。

自从我开始使用 jquery 以来,是时候用仅刷新图像的方法替换此方法了。

所以我写了这个小片段:

$(document).ready(function() {
    $('#creload').click(function() {
        $.ajax({
            type: "POST",
            url: "/en/KDpg_Captcha.html",
            async: true,
            success: function(ret) {
                $('#cimg').attr('src', ret);
            }
        });
    });
});​

其中#creload是请求重新加载的链接的ID,#cimg是实际图像的ID。

我发现,如果填写其他表单字段然后请求重新加载,其他字段将被重置。这不是我们想要的结果。

我可能会错过什么?

最佳答案

如果 #creload 是一个链接,您需要阻止它执行默认操作,即打开 href 属性中的内容。添加e.preventDefault()停止这个。不要忘记添加 e 作为参数:

$('#creload').click(function(e) {
    e.preventDefault();
    // ...

关于JQuery ajax 调用重置所有表单字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10146384/

相关文章:

javascript - 为什么在表单 ajax 提交上调用其他 ajax 函数?

javascript - 从网格中删除一个项目,该项目应始终具有 6 列

javascript - 将变量传递给延迟完成

javascript - 如何检测 div 的内容何时被卸载?

javascript - 获取上传字段的值并计算数组

c++ - 使用 C++ 提交表单的 Http GET 请求

php - PHP 中的 json_encode 输出没有给数据提供标签,以便可以访问它

jQuery - CSS - 通过拖动鼠标事件旋转 Div

javascript - Facebox 在 scala 中无法正常工作

Asp.Net Ajax - 调用非静态方法