如何在jquery脚本中使用下拉列表中的选定值来应用if condtion?

时间:2018-03-05 09:35:14

标签: jquery validation if-statement dropdown

我正在制作一张表格。在表单上应用一些java脚本验证。 我希望通过验证进行一处更改。我有一个公司名称的下拉列表。假设我有五家公司。

<select id="org_id">
    <option value="1">ABC</option>
    <option value="2">DEF</option>
    <option value="3">GHI</option>
    <option value="4">IJK</option>
    <option value="5">LMN</option>
</select> 

如果我想在用户选择ABC时不验证表单,如果用户选择任何其他表单,则只应在表单上应用验证。

我的验证脚本:

var frmvalidator = new Validator("add_employee_frm");
    frmvalidator.addValidation("employee_number","req","Please Enter Employee Number");
    frmvalidator.addValidation("employee_name","req","Please Enter Employee Name");
    frmvalidator.addValidation("employee_name","alphabetic_space","Please Enter Valid Employee Name"); 

我在验证脚本上尝试了if else条件。但它不起作用。

$(function () {
    $("#org_id").change(function () {                   
        var selectedValue = $(this).val();
        alert(selectedValue);
    });
});
    if(selectedValue == 1)
    {
        return true;
    }
    elseif(selectedValue != 1)
    {
        var frmvalidator = new Validator("add_employee_frm");
        frmvalidator.addValidation("employee_number","req","Please Enter Employee Number");
        frmvalidator.addValidation("employee_name","req","Please Enter Employee Name");
        frmvalidator.addValidation("employee_name","alphabetic_space","Please Enter Valid Employee Name");
        return true;
    }

此代码对我不起作用。我从选定的价值中获取价值并将其推入if..else条件。如何实现这一点。

3 个答案:

答案 0 :(得分:1)

据我所知,如果用户从下拉列表中选择了特定值,则需要绑定验证代码。这里的主要问题是您在文档内部执行的第一个代码块,并在其外部休息,如下所示。

$(function(){
  if($('#org_id').val() == 1){
      var frmvalidator = new Validator("add_employee_frm");
      frmvalidator.addValidation("employee_number", "req", "Please Enter Employee Number");
      frmvalidator.addValidation("employee_name", "req", "Please Enter Employee Name");
      frmvalidator.addValidation("employee_name", "alphabetic_space", "Please Enter Valid Employee Name");
  }
});

答案 1 :(得分:0)

您不需要onchange功能。只需计算下拉列表的值,并仅在if条件下进行比较。

if ($("#org_id").val() == 1) {
  return true;
}
else{
  var frmvalidator = new Validator("add_employee_frm");
  frmvalidator.addValidation("employee_number", "req", "Please Enter Employee Number");
  frmvalidator.addValidation("employee_name", "req", "Please Enter Employee Name");
  frmvalidator.addValidation("employee_name", "alphabetic_space", "Please Enter Valid Employee Name");
  return true;
}

要在代码中具体说明问题是变量的范围。与onchange中一样,变量selectedValue的范围限定为其封闭函数,并且任何其他块都无法访问它。

答案 2 :(得分:0)

您好需要在onchange函数中添加if-else检查以在每次更改下拉列表时获取值。在你的情况下,你是在更改后准备好是否已准备就绪,因为selectedValue永远不会获得该值。

$(function () {
    $("#org_id").change(function () {                   
        var selectedValue = $(this).val();
        alert(selectedValue);

        if(selectedValue == 1)
        {
            return true;
        }
        elseif(selectedValue != 1)
        {
            var frmvalidator = new Validator("add_employee_frm");
            frmvalidator.addValidation("employee_number","req","Please Enter Employee Number");
            frmvalidator.addValidation("employee_name","req","Please Enter Employee Name");
            frmvalidator.addValidation("employee_name","alphabetic_space","Please Enter Valid Employee Name");
            return true;
        }
    });
});