【问题标题】:Enable and disable download button in javascript在javascript中启用和禁用下载按钮
【发布时间】:2020-05-03 23:14:52
【问题描述】:

我制作了一个表格,要求提供姓名和电子邮件以下载文件。问题是,无论您是否填写名称,“下载”按钮都可以正常工作,即使它显示消息,通知缺少下载文件的信息。

我没有足够的 js 知识来想办法让“下载”按钮在输入姓名和电子邮件时工作。

有人可以帮忙吗?请!

HTML 下载按钮:

<button type="submit" onclick="window.location.href='download/CV.pdf'">Download</button>

JS:

  var email = document.getElementById("email").value;
  var error_message = document.getElementById("error_message");

  error_message.style.padding = "10px";

  var text;
  if(name.length < 5){
    text = "Please Enter valid Name";
    error_message.innerHTML = text;
    return false;
  }
  if(email.indexOf("@") == -1 || email.length < 6){
    text = "Please Enter valid Email";
    error_message.innerHTML = text;
    return false;
  }
  alert("Thank you!");
  return true;
}

谢谢!

【问题讨论】:

  • 如果我没记错的话,除非用户提供姓名和电子邮件,否则您要禁用“下载”按钮,对吧?
  • 确切地说,只有在用户提供该信息时,该按钮才会触发下载
  • 但是,如果用户提供了您从未收到过的信息,那又有什么意义呢?!?

标签: javascript html forms validation


【解决方案1】:

你可以这样做。

  <form onsubmit="return validateForm(event)">
    <button type="submit">Download</button>
    <input type="text" id="email" placeholder="Email">
    <input type="text" id="name" placeholder="Name">
  </form>

  ...

  function validateForm(event) {
    event.preventDefault();

    var email = document.getElementById("email").value;
    var name = document.getElementById("name").value;
    var error_message = document.getElementById("error_message");

    error_message.style.padding = "10px";

    var text;
    if(name.length < 5){
      text = "Please Enter valid Name";
      error_message.innerHTML = text;
      return;
    }
    if(email.indexOf("@") == -1 || email.length < 6){
      text = "Please Enter valid Email";
      error_message.innerHTML = text;
      return;
    }
    window.location.href = "download/CV.pdf";
  }

【讨论】:

  • 感谢您的宝贵时间。不幸的是,那没有用。 “如果”有效,但点击下载按钮后,页面会刷新并且不会触发下载。
  • 您应该在提交表单时致电preventDefault。查看更新后的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-22
  • 1970-01-01
  • 2016-08-16
  • 2012-12-16
  • 1970-01-01
  • 2012-02-17
相关资源
最近更新 更多