将键名传递给 jquery 中的 json 对象

发布于 2024-11-02 04:19:47 字数 1232 浏览 1 评论 0原文

我正在尝试编写一个通用函数,通过 Jquery Ajax 验证我的字段。我的问题是,我想通过函数输入给出键名。但是,在 field_value 变量中,我的 field_label 参数保持为“field_label”。我想更改它,例如“电子邮件”、“用户名”,这样我就可以生成不同的 json。那么有什么想法吗?

  function validate_field(span_id,field_id,field_label,url){
           var message_field = $("#" + span_id)

           $("#" + field_id).keyup(function(){
                if(this.value != this.lastValue){
                      if(this.timer){
                          clearTimeout(this.Timer);
                      }
                message_field.html('<img src="/media/img/loader.gif">');
                var field_value = {field_label : $("#"+field_id).val()};
                var json_response = JSON.stringify(field_value);
                this.timer = setTimeout(function(){
                      $.ajax({
                            type:'POST',
                            url:url,
                            contentType:'application/json; charset=utf-8',
                            data:json_response,
                            success:function(msg){
                                 message_field.html(msg);
                            }
                      });
                });
             }
          });
    }

I'm trying to write a generalised function that validates my field through Jquery Ajax. My problem is, I want to give key names via function input. However in the field_value variable, my field_label parameter stays as "field_label". I want to change it like "email", "username" so i can generate different jsons. So any idea ?

  function validate_field(span_id,field_id,field_label,url){
           var message_field = $("#" + span_id)

           $("#" + field_id).keyup(function(){
                if(this.value != this.lastValue){
                      if(this.timer){
                          clearTimeout(this.Timer);
                      }
                message_field.html('<img src="/media/img/loader.gif">');
                var field_value = {field_label : $("#"+field_id).val()};
                var json_response = JSON.stringify(field_value);
                this.timer = setTimeout(function(){
                      $.ajax({
                            type:'POST',
                            url:url,
                            contentType:'application/json; charset=utf-8',
                            data:json_response,
                            success:function(msg){
                                 message_field.html(msg);
                            }
                      });
                });
             }
          });
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

眼波传意 2024-11-09 04:19:48

将此行:更改

var field_value = {field_label : $("#"+field_id).val()};

为:

var field_value = {};
field_value[field_label] = $("#"+field_id).val();

change this line:

var field_value = {field_label : $("#"+field_id).val()};

to this:

var field_value = {};
field_value[field_label] = $("#"+field_id).val();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文