javascript - 有没有办法调用部分函数

标签 javascript jquery json function constants

我正在调用我在 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/

相关文章:

javascript - 在 Asp.Net 中,如何在不按 CTRL 的情况下多重选择列表框中的项目?

JavaScript 正则表达式用于验证接收到的 MySQL 全文搜索搜索字符串

javascript - 现场通知系统

javascript - 如何访问嵌套的 json 元素?

wcf - 如何在服务级别在 WCF 中记录 JSON 响应

javascript - 如何使用正则表达式捕获特定字符串中的特定字符?

jquery - 我们如何在 JQuery 的单个选择器中使用多个 Id/内容

jquery - 我想使用 custome css 更改我的 wordpress 网站的大型菜单中 Font Awesome 图标的大小

jquery - 引用 papaparse 输出数组

php - 如何在 AngularJS 和 PHP 中获取最大数量的 JSON 记录作为响应