检查 2 个输入和启用按钮的变化

我有一个包含一系列无线电项目的表格。如果用户选择其中一个单选项目(缺少项目)上的特定条目,我会使用 JQuery 将引导无效类添加到表单上的两个特定输入,并添加一个标签,要求他们添加详细信息并禁用提交按钮阻止他们提交表格。


$(function () {

$("input[name=optradio]:radio").click(function () {

  if ($('input[name=optradio]:checked').val() == "2") {

      $('textarea[name=sentTo]').addClass('is-invalid');

      $('input[name=dateSent]').addClass('is-invalid');

      $('#removedMSG').text("You must update this field prior to saving");

      $('#removedMSG2').text("You must update this field prior to saving");

      $('#submit').prop('disabled', true);

  } else {

      $('textarea[name=sentTo]').removeClass('is-invalid');

      $('input[name=dateSent]').removeClass('is-invalid');

      $('#submit').prop('disabled', false);

  }

});

});

我想添加进一步的检查,以确保用户在重新启用提交按钮之前更新两个输入(一个文本区域)。


我知道我可以使用以下内容来检查输入更改


$("textarea[name=sentTo]").on("input", function(){

   $('textarea[name=sentTo]').removeClass('is-invalid');

});

这很好用。但是我不知道如何将它们整合在一起:


因此,基本上用户选择收音机,is-invalid 被添加到 2 个输入字段,并且禁用提交按钮 - 用户根据需要填写 2 个字段,只有当两个字段都已更新时,我们才会重新启用提交按钮。


我想我需要一个 if 语句,但我似乎无法得到正确的代码。


我试过


if `$("textarea[name=sentTo]").on("input") && $("textarea[name=dateSent]").on("input")` 

但这不起作用


湖上湖
浏览 86回答 1
1回答

哆啦的时光机

您可以传递以逗号分隔的多个选择器,并使用this关键字来引用事件处理函数内的当前元素:var sentTo = dateSent = false;$("textarea[name=sentTo], textarea[name=dateSent]").on("input", function(){  if($(this).attr('name') == 'sentTo') sentTo = true;    //true for sentTo  if($(this).attr('name') == 'dateSent') dateSent = true;//true for dateSent  if(sentTo && dateSent){  // if both are true    $(this).removeClass('is-invalid');    sentTo = dateSent = false;  }});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5