javascript - 如何重构多个 if else 语句

标签 javascript jquery

I want to do form validation without using these many if else conditions, I want to use single if-else condition is it possible?.

  if($( "#firstname" ).val() == "") {
    $('#dateofbirth').html("Please enter date of birth.");
  }
  else
  {
    $('#dateofbirth').empty();
  }

  if($( "#lastname" ).val() == "") {
    $('#employeetypeid').html("Please select employee type.");
  }
  else
  {
    $('#employeetypeid').empty();
  }
  if($( "#username" ).val() == "") {
    $('#worklocationid').html("Please select work location.");
  }
  else
  {
    $('#worklocationid').empty();
  }
  if($( "#passwordConfirmation" ).val() == "") {
    $('#departmentid').html("Please select organization/dept.");
  }
  else
  {
    $('#passwordConfirmation').empty();
  }`

最佳答案

根据您的示例,您可以将所有代码折叠到一个函数中。

例如:

$("form").on("submit", function() {
    checkField("firstname", "dateofbirth", "Please enter date of birth.");
    checkField("lastname", "employeetypeid", "Please select employee type.");
    checkField("username", "worklocationid", "Please select work location.");
    checkField("passwordConfirmation", "departmentid", "Please select organization/dept.");
});


function checkField(fieldToCheck, errorLabel, errorMessage ) {
    if ( $("#" + fieldToCheck).val() == "" ) {
        $("#" + errorLabel).html(errorMessage); 
    }
    else {
        $("#" + errorLabel).empty();
    }
}

关于javascript - 如何重构多个 if else 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44157570/

相关文章:

jquery - 我的 HTML/CSS/javascript 中的什么会导致屏幕右侧出现奇怪的间隙?

jquery - 简化此函数以获取和设置值

javascript - 为每个列表项添加带有延迟的 CSS 动画

javascript - 如何调整 Box 的大小,打开第 3 层?

javascript - HTMLCollection 和 NodeList 是可迭代的吗?

JavaScript 下拉列表 : Select onClick

javascript - 获取倒数第二个和最后一个斜杠之间的内容

javascript - 是否有一个预先写好的低影响时间下拉列表,允许选择一天中的 1440 分钟中的任何一个?

javascript - 如何将mysql数据库返回的数据转换成json

php - 如何使用简单的 CSS 和 Javascript 隐藏其余内容