在提交事件函数调用时使用“return”时抛出错误

时间:2018-05-01 08:50:24

标签: javascript

我正在使用Electron创建一个简单的应用程序,允许您将任务添加到列表中。但是,它不应该允许您添加空任务。

以下脚本是我在Renderer JS文件中使用的最小可验证版本。

const taskForm = document.querySelector('form');
taskForm.addEventListener('submit', addTask);

function addTask(event)
{
  const formInput = taskForm.querySelector('input[type="text"]');
  const taskName = formInput.value;
  formInput.value = "";

  if (!taskName || taskName.length === 0)
  {
    console.log("Empty"); 
    return; //It doesn't seem to like this return. No idea why.
  }

 //Task element is created and added

  event.preventDefault();
}

我还为那些想要在代码中弄乱这个问题的人整理了一个JSFiddle:https://jsfiddle.net/bts22a34/这似乎也引发了一个问题,尽管它不在Electron之外。

每当它命中return函数时,它都会抛出以下错误:

“错误:没有这样的模块:atom_renderer_v8_util”

通过在“if”语句之前添加断点,它似乎成功完成返回,点击函数的结尾,然后抛出错误。

如果我发送一个非空字符串,它会成功跳过if语句并完成该函数而没有错误。

1 个答案:

答案 0 :(得分:1)

刚刚再次讨论它,如果你通过if语句,似乎是关于“event.preventDefault”没有被运行的问题。

const taskList = document.querySelector('div');
const taskForm = document.querySelector('form');
taskForm.addEventListener('submit', addTask);

id = -1;

function addTask(event)
{
  const formInput = taskForm.querySelector('input[type="text"]');
  const taskName = formInput.value;
  formInput.value = "";

  if (!taskName || taskName.length === 0)
  {
    console.log("Empty"); 
  }

  else
  {
    //Task element is created and added
  }

  event.preventDefault();
}

JSFiddle:https://jsfiddle.net/bts22a34/