【问题标题】:How to merge two javascript function with third function with condition?如何将两个javascript函数与第三个函数与条件合并?
【发布时间】:2021-03-15 20:14:36
【问题描述】:

我是 js 的初学者,我在合并两个函数时遇到了问题。我想用条件制作第三个功能,当标记复选框并标记 reCAPTCHA 时,才启用按钮。默认情况下,我将按钮设置为禁用。 如下单个功能正在工作:

  function clauseValid(elem) { 
  document.getElementById("sendBtn").disabled = false;
  return true;
  };

  function captchaValid () {
  document.getElementById("sendBtn").disabled = false;
  return true;
  };


  <input type="checkbox" name="chkbx" id='#ID#' value="#seq_claim_id#"  onClick="clauseVlid(this)">

  <div class="g-recaptcha" data-sitekey="*****..." id="ckecCaptcha" type="checkbox" data-callback="captchaValid"></div>

我试着做一个这样的人,但它不起作用:

  function clauseValid(elem) {
      return true};

  function captchaValid() {
      return true};

  function CheckTest() {
   if (clauseValid(elem) && captchaValid()) {
       document.getElementById("sendBtn").disabled = false;
   }
 }

【问题讨论】:

  • 你能解释一下到底出了什么问题吗?
  • 您有onClick="clauseVlid(this)",但函数名为clauseValid()。另外,你在哪里打电话CheckTest()
  • @Lemondoge 我的意思是,当满足两个条件(两个标记的字段 - 一个复选框 - 第二个 reCaptcha)时,该按钮将被启用
  • @kmoser 我认为这是错误的,这就是为什么我问你如何做到这一点:)

标签: javascript html


【解决方案1】:

使用变量来跟踪每个条件的当前状态:

let isClauseValid, isCaptchaValid;

function clauseValid(elem) {
  isClauseValid = elem.checked;
  setButton();
}

function captchaValid() {
  isCaptchaValid = true;
  setButton();
}

function setButton() {
  document.getElementById("sendBtn").disabled = !isClauseValid || !isCaptchaValid;
}

注意:确保更正 HTML onclick 属性中的拼写错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-07
    • 2021-09-29
    • 1970-01-01
    • 2019-05-02
    • 1970-01-01
    • 2016-08-01
    • 1970-01-01
    • 2022-10-23
    相关资源
    最近更新 更多