我正在调用我在 on click
方法上编写的函数。我想知道我是否也可以在另一个 onChange
方法中调用该函数的一部分。
或者还有其他办法吗?
我的功能:
const filts = flatten => {
let new_filts = {
'site': $('#sites select option:selected')[0].value,,
'group_by': $('#group_by select option:selected')[0].value,
'date': 'date',
'topics': $('#topics select option:selected')[0].value,
'errors': []
}
if (new_filts.site.length === 0)
new_filts.errors.push('Please select at least one <b>Site</b>.');
if (new_filts.errors.length > 0) {
let message = '';
new_filts.errors.forEach(d => {
message += `<li>${d}</li>`
});
$.confirm({
title: 'All filts Are Required',
});
}
if (flatten) {
new_filts.site = new_filts.site.join('|');
}
return new_filters;
}
我需要我的点击方法的整个功能,它最后是这样的:
$('#update').on('click', function() {
filters = filts(true);
});
update
是一个按钮。我希望它调用所有的 filts 函数。检查错误和所有。
我在 site
上有另一个 onChange
方法。我希望在这里再次调用 filts
函数,但我只希望能够调用函数的这一部分:
const filts = flatten => {
let new_filts = {
'site': 'google',
'group_by': $('#group_by select option:selected')[0].value,
'date': 'date',
'topics': $('#topics select option:selected')[0].value,
'errors': []
}
if (flatten) {
new_filts.site = new_filts.site.join('|');
}
return new_filters;
}
我的 onchange
函数:
$('#site').on('change', function() {
filters = filts(true);
});
我不想在我的 onchange 中调用我的函数的错误检查。
有什么办法吗?
最佳答案
您可以再传递一个参数来说明您是否要检查错误
const filts = flatten, checkError => {
let new_filts = {
'site': $('#sites select option:selected')[0].value,,
'group_by': $('#group_by select option:selected')[0].value,
'date': 'date',
'topics': $('#topics select option:selected')[0].value,
'errors': []
}
if(checkError){
if (new_filts.site.length === 0)
new_filts.errors.push('Please select at least one <b>Site</b>.');
if (new_filts.errors.length > 0) {
let message = '';
new_filts.errors.forEach(d => {
message += `<li>${d}</li>`
});
$.confirm({
title: 'All filts Are Required',
});
}
}
if (flatten) {
new_filts.site = new_filts.site.join('|');
}
return new_filters;
}
然后在两个不同的位置调用你的方法,比如
filts(true,true);
检查错误
filts(true,false);
不检查错误
关于javascript - 有没有办法调用部分函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57792828/