0

Screenshot showing alert even if i select 'female' I have a scenario where there are 4 text boxes and one Radio Button list. If i click the Submit button by leaving all fields it should alert me . I used 4 Required Validator s for text boxes and a java script function for the radio button list.

My mark up language and function is:

        function Validate() {

        var radio = document.getElementsByName("rdbGender");                    

        for (var i = 0; i < radio.length; i++) {

            if (radio[i].checked) {

                return true;

            }
            else
            {

                alert("Choose a Gender");
                return false;

            }
        }    
    }

Aspx page is:

       <asp:Button ID="btnSave" Text="Save" runat="server" Width="50px" OnClientClick= "Validate()"
                OnClick="btnSave_Click" />

When ever i click the button by leaving fiealds empty, and leaving radio button list with out selecting a item, it is alerting but if i press ok it is executing further. I read in one website that if we write " return true " after alert has been showed and clicking ok it will execute further,,but i wrote "return false" after alert it means untill i check one radio button it should not execute...Where am i wrong??

   Javascript:

    <script type="text/javascript">
      function Validate() {

        var checkedVal = false;

        var radio = document.getElementsByName("rdbGender");                    

        for (var i = 0; i < radio.length; i++) {

            if (radio[i].checked) {

                checkedVal = true;
                return checkedVal;
            }
            else {

                alert('Chhooose gender');
                return checkedVal;
            }


        }


    }

</script>

Mark up design:

     <tr>
        <td>
            Gender
        </td>
        <td>
            <asp:RadioButtonList ID="rdbGender" RepeatDirection="Horizontal" runat="server">
                <asp:ListItem Value="MALE">

                </asp:ListItem>
                <asp:ListItem Value="FEMALE">
            Female
                </asp:ListItem>
            </asp:RadioButtonList>
        </td>
    </tr>
   .
   .
   .
   .![enter image description here][2] 
   <td>
            <asp:Button ID="btnSave" Text="Save" runat="server" Width="50px"  ValidationGroup="Star" OnClientClick="return Validate()"
                OnClick="btnSave_Click" />
        </td>

2 Answers 2

2

Try using return when calling client function.

    <asp:Button ID="btnSave" Text="Save" runat="server" Width="50px"
 OnClientClick= "return Validate();"
                    OnClick="btnSave_Click" />

For first iteration of for, If first radio button is not checked it would go to else part which is showing alert and returning false. Please implement below code.

function Validate() {
        var checkedval=false;
        var radio = document.getElementsByName("rdbGender");                    

        for (var i = 0; i < radio.length; i++) {

            if (radio[i].checked) {
                    checkedval=true;
                   return checkedval;
            }

        }      
      return checkedval;

}
Sign up to request clarification or add additional context in comments.

12 Comments

It worked somehow!!!...If i did not select any radio button it is alerting that s fine , It is working fine with the first radio button item, But if i select the second radio button item still it alerting me!!!
have u commented if part?
No..!! Shud i comment it ?
Where should i alert in function?? after if block??
should i return checkedval in else block after alert??
|
1

A function can only have one return value. When return true is executed, the function immediately return true and stop going further. Therefore, comment out the return true and try.

function Validate() {

        var radio = document.getElementsByName("rdbGender");                    

        for (var i = 0; i < radio.length; i++) {

            if (radio[i].checked) {

                //return true;  
                //this return true causes the problem.

            }
            else
            {

                alert("Choose a Gender");
                return false;

            }
        }    
    }

1 Comment

<asp:Button ID="btnSave" Text="Save" runat="server" Width="50px" OnClientClick= "if (!Validate()) return false;" OnClick="btnSave_Click" />

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.