dynamically enable or disable requiredfieldvalidator based on value of dropdownl

dynamically enable or disable requiredfieldvalidator based on value of dropdownl  using -'asp.net,validation,requiredfieldvalidator'

I have an ASP.NET form with three text inputs, one each for "Work Phone", "Home Phone" and "Cell Phone". Each of these text inputs has a RequiredFieldValidator associated with it. I also have a DropDownList where the user can select the preferred phone type.

I want to only require the field that is selected in the DropDownList. For example, if the user selects "Work Phone" from the DropDownList, I want to disable the RequiredFieldValidator for "Home Phone" and "Cell Phone", thereby only making the "Work Phone" field required.

I have a method that enables and disables these validators based on the value of the DropDownList, but I cannot figure out when to call it. I want this method to run before the validation takes place on the page. How would I do that?

asked Sep 13, 2015 by PhilippBenne
0 votes

6 Answers

0 votes

Why not use a CustomValidator in this case? Turning off/on a RequiredFieldValidator could lead to a design issue in the future - I'd stick to using them on fields that are going to be required.

answered Sep 13, 2015 by EllieSdm0873
0 votes

You can do this with JavaScript like this:

ValidatorEnable(RequiredFieldValidatorId, false);

Then have your drop down list use the onchange event (I'd suggest using jQuery)

$("#<%=dropDownList.ClientID %>").change(function(){
    var val = $(this).val();
    var skip = null;
    if (val == 1)
       skip = "workPhoneValidator";
    else if (val == 2)
       skip = "cellPhoneValidator";

    // by popular demand...
    var $skip = $("#" + skip)[0];

    if (skip != "workPhoneValidator") ValidatorEnable($skip, false);
    if (skip != "cellPhoneValidator") ValidatorEnable($skip, false);
answered Sep 13, 2015 by IreGDI
0 votes

When you are using home phone, in dropdown selectedindexchange event, make the required field validators invisible.


if homephone is selected,


if cellphone is selected,


if workphone is selected,

answered Sep 13, 2015 by EliseUrnerhn
0 votes

OnChange event of the drop down you may have something like this

function EnableValidator(){
    ValidatorEnable(requiredFieldValidator, validatorMustBeEnabled);

Check on this url. Section "Client-Side APIs"


answered Sep 13, 2015 by RethaSaiztb
0 votes

Possible way would be:

  • Set in your DropDownList AutoPostBack="true"
  • In the SelectedIndexChanged event handler of the DropDownList enable/disable your validators
  • Set in your DropDownList CausesValidation="false" to avoid that the validators block a postback when you change the DropDownList entry.
answered Sep 13, 2015 by CarmelaCharl
0 votes

This is good way to enable and disable server side control validation from jquery event:


function EnableDisbledValidator(lblShow) {
    if (lblShow == "hide") {;
        ValidatorEnable($('#<%=rfvNote.ClientID %>')[0], false);

    } else {
        ValidatorEnable($('#<%=rfvNote.ClientID %>')[0], true);
answered Sep 13, 2015 by JenniferCarl