【问题标题】:reset variable after ajax call is doneajax调用完成后重置变量
【发布时间】:2017-08-31 11:24:38
【问题描述】:

我正在调用一个 ajax 函数来检查输入的数据是否 已经存在于数据库中。 我的ajax代码是这样的。

 $(document).on('change','.lawregno',function(){
                /// Your validation logic
                var regno = $(this).val();
                if(regno)
                {
                    var data = 'regno='+ regno; // this where i add multiple data using  ' & '
                    $.ajax({
                        type: 'POST',
                        dataType: "json",
                        data: data,
                        url: "{{ URL::to('admin/check_regno_exit') }}",
                        success: function (response) {
                            if(response=="1")
                            {
                                alert('LawRegNo Already Exists');
                                return false;
                            }
                        }
                    });
                }
                else
                {
                    return false;
                }                
            });

显示警报消息后我应该如何重置数据。

【问题讨论】:

  • 您要“重置”哪些数据? “重置”它是什么意思?
  • ajax 代码中的数据变量
  • 您可以将变量设置为您想要的任何值。不过,在这个例子中它似乎并不重要,因为该变量超出了范围并且不再存在。真的不清楚你在这里实际想要完成什么。
  • 我想他想在 ajax 完成后将输入的值更改为 null。在这种情况下,您可以在 ajax 调用之前将 this 范围保存在另一个名为 self 的变量中,并在 ajax 调用中执行 $(self).val('')
  • 我想在 ajax 调用后将 $(this).val() 设置为 null

标签: javascript ajax laravel model-view-controller


【解决方案1】:

根据您的上述评论:

我想在 ajax 调用后将 $(this).val() 设置为 null

首先,捕获对this 的引用,因为它将不再在同一范围内。任何变量都可以:

var data = 'regno='+ regno;
var element = this;
$.ajax({
    //...
});

然后您可以在回调函数中使用 element 变量来设置该元素的值:

success: function (response) {
    if(response=="1")
    {
        alert('LawRegNo Already Exists');
        $(element).val('');
    }
}

【讨论】:

  • 我认为同样可以将 jquery 包装的 $(this) 引用为变量。
  • @Niladri:是的,可以将变量设置为任何人选择的值。
  • @David 它不工作,我想在警报消息关闭后清除文本框。
  • @Deb:在问题中显示您更新的代码。它以什么方式失败?此示例将根据我们对您正在使用的代码的理解“清除文本框”。
  • @Deb:再看看发布的答案。您更新的代码没有按照建议执行。您需要捕获对 element 的引用,而不是 value。该值不能单独用于引用元素。
【解决方案2】:

您可以在成功处理程序中执行此操作。首先,您必须使用$(this) 的引用设置一个变量,如下所示

var elm = $(this);

然后你可以在成功回调中引用它。

success: function (response) {
                            if(response=="1")
                            {
                                alert('LawRegNo Already Exists');
                                elm.val('');
                                return false;
                            }
                        }

【讨论】:

    猜你喜欢
    • 2011-09-08
    • 1970-01-01
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    • 2021-07-05
    • 1970-01-01
    • 1970-01-01
    • 2021-06-27
    相关资源
    最近更新 更多