如何使用 if else 语句为点击事件检查输入值是 true 还是 false

how to use if else statement for click event to check the input value is true or false

function event() {
   $('main').css("display", "none");
   $('section').css("display", "block");
}

function startButton(){
   if($('input').val() === true){
   $('button').on('click', event)
   } else if($('input').val() === false){
      $('button').off('click', event)
   }
}
startButton()

当我用 if($('input').val() === "") 做 if 语句时 无论用户是否在输入中键入文本,点击事件都会起作用 当我检查控制台上的布尔值时,它 returns true 或 false 取决于输入值是否被填充

我想在用户输入输入时在按钮上添加点击事件,并在输入中没有输入文本时删除点击事件

有人可以帮我处理代码吗?

如果我错了请纠正我,你的场景是当输入有值时,按钮点击事件会打开,然后如果输入没有值,按钮点击事件会关闭?如果我是对的,那么这就是答案。

$('input').keyup(function(){
    if($('input').val() != "")
        $('button').on('click', event)
    else
        $('button').off('click', event)
});

我的回答与 object reference 的回答相似。

但是事件处理器不会被注册很多次。

// The function to execute on button click
function event(){
  $('main').css("display", "none");
  $('section').css("display", "block");
});

// The input check
$('input').on("input",function(){
  if(($this).val()!=""){
    $('button').off('click', event).on('click', event); // Off then on to prevent the handler to be registered multiple times.
  }else{
    $('button').off('click', event);
  }
});

或者...这可能是最好的方法:

$("button").on("click",function(){
  $('main').css("display", "none");
  $('section').css("display", "block");
});

$('input').on("input",function(){
  if(($this).val()!=""){
    $('button').prop("disabled",false);
  }else{
    $('button').prop("disabled",true);
  }
});

在 onload 状态的按钮标记中添加 "disabled" 属性:

<button disabled>whatever</button>