在下面的代码中,我正在为更多表单回收相同的Ajax函数。提交数据后,必须重置其中一个表单。问题是即使if (data)
事件发生,也会执行重置代码(在第6行)。怎么会这样?
$('input[type="button"][id^=data_]').click(function ()
if ($(this).attr('id') == 'data_update') {
[...]
} else if ($(this).attr('id') == 'data_submit') {
[...]
var extra_success = $('form[name="data_submit"] input[type=text]').val('');
};
$.ajax({
[...]
success: function(data) {
if (data) {
$(div_for_response).html(data).css('color','red');
} else {
$(div_for_response).html('Success!').css('color','green');
if (extra_success) {
extra_success
}
}
}
});
});
答案 0 :(得分:1)
尝试使用=== 你需要精确比较
$('input[type="button"][id^=data_]').click(function ()
if ($(this).attr('id') === 'data_update') {
[...]
} else if ($(this).attr('id') == 'data_submit') {
[...]
var extra_success = $('form[name="data_submit"] input[type=text]').val('');
};
$.ajax({
[...]
success: function(data) {
if (data) {
$(div_for_response).html(data).css('color','red');
} else {
$(div_for_response).html('Success!').css('color','green');
if (extra_success) {
$('form[name="data_submit"] input[type=text]').val('');
}
}
}
});
});
答案 1 :(得分:1)
也许你在创建变量时重置val而不是试试这个:
您将在第一个if
创建变量时传递。即使你进入if(data)
,当创建变量时,该值也会被删除。
$('input[type="button"][id^=data_]').click(function ()
if ($(this).attr('id') == 'data_update') {
[...]
} else if ($(this).attr('id') == 'data_submit') {
[...]
var extra_success = $('form[name="data_submit"] input[type=text]');
};
$.ajax({
[...]
success: function(data) {
if (data) {
$(div_for_response).html(data).css('color','red');
} else {
$(div_for_response).html('Success!').css('color','green');
if (extra_success) {
extra_success.val('');
}
}
}
});
});
如果您的if
声明合适,应该可以解决问题。
答案 2 :(得分:1)
你的问题是,我认为你试图在你的变量var extra_success
中为你的变量$('input[type="button"][id^=data_]').click(function ()
if ($(this).attr('id') == 'data_update') {
[...]
} else if ($(this).attr('id') == 'data_submit') {
[...]
var extra_success = function() {
$('form[name="data_submit"] input[type=text]').val('');
};
};
$.ajax({
[...]
success: function(data) {
if (data) {
$(div_for_response).html(data).css('color','red');
} else {
$(div_for_response).html('Success!').css('color','green');
if (extra_success) {
extra_success();
}
}
}
});
});
分配一个函数。尝试更改您的代码:
{{1}}
这样您就可以为变量分配一个函数,然后再调用它。