Javascript ajax调用完成后重置变量
我调用了一个ajax函数来检查输入的数据 已存在于数据库中。 我的ajax代码是这样的Javascript ajax调用完成后重置变量,javascript,ajax,laravel,model-view-controller,Javascript,Ajax,Laravel,Model View Controller,我调用了一个ajax函数来检查输入的数据 已存在于数据库中。 我的ajax代码是这样的 $(document).on('change','.lawregno',function(){ /// Your validation logic var regno = $(this).val(); if(regno) { var data
$(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;
}
});
显示警报消息后,如何重置数据 您可以在成功处理程序中执行此操作。首先,您必须设置一个引用为
$(this)
的变量,如下所示
var elm = $(this);
然后您可以在成功回调中引用它
success: function (response) {
if(response=="1")
{
alert('LawRegNo Already Exists');
elm.val('');
return false;
}
}
根据您的上述评论: 在进行ajax调用后,我想将$(this).val()设置为null 首先,捕获对该的引用,因为它不再在同一范围内。任何变量都可以:
var data = 'regno='+ regno;
var element = this;
$.ajax({
//...
});
然后,您可以在回调函数中使用该元素
变量来设置该元素的值:
success: function (response) {
if(response=="1")
{
alert('LawRegNo Already Exists');
$(element).val('');
}
}
您试图“重置”哪些数据?“重置”它是什么意思?数据变量在ajax代码中,您可以将变量设置为您想要的任何值。不过,在本例中,这似乎无关紧要,因为该变量已超出范围,并且不再存在。现在还不清楚你到底想在这里完成什么,我想他想在ajax完成后将输入值改为null。在这种情况下,您可以在ajax调用之前将
this
范围保存在另一个名为self
的变量中,并在ajax调用内部do$(self).val(“”)
。我想在ajax调用完成后将$(this).val()设置为null。我认为同样可以将jquery包装的$(this)
作为变量引用。@Niladri:Yes,可以将变量设置为所选的任何值。@David这不起作用,我想在alert msg关闭后清除文本框。@Deb:在问题中显示更新的代码。它以什么方式失败?根据我们对您使用的代码的理解,此示例将“清除文本框”。@Deb:再看一看发布的答案。您更新的代码没有执行建议的操作。您需要捕获对元素的引用,而不是值。不能仅使用值来引用元素。