简体   繁体   English

在javascript函数中返回值

[英]Returning Values in javascript function

即使我选择“女性”也显示警报的屏幕截图 I have a scenario where there are 4 text boxes and one Radio Button list. 我有一个场景,其中有4个文本框和一个单选按钮列表。 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. 我将4个Required Validator用于文本框,并将Java脚本函数用于单选按钮列表。

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: Aspx页面是:

       <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. 每当我单击按钮时,都将空白处留空,并保留单选按钮列表而不选择项目,这将发出警报,但是如果我按OK,它将继续执行。 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?? 我在一个网站上读到,如果在显示警报后我们写“ return true”,然后单击“确定”,它将进一步执行,但是在警报后我写了“ return false”,这意味着直到我选中一个单选按钮才应该执行。我在哪里错?

   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>

Try using return when calling client function. 调用客户端函数时尝试使用return

    <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. 对于for的第一次迭代,如果未选中第一个单选按钮,它将转到显示警报并返回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;

}

A function can only have one return value. 一个函数只能有一个返回值。 When return true is executed, the function immediately return true and stop going further. 当执行return true ,该函数立即返回true并停止进一步操作。 Therefore, comment out the return true and try. 因此,注释掉return true并尝试。

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;

            }
        }    
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM