使用jQuery

时间:2017-06-23 22:24:15

标签: jquery asp.net validation

我在jQuery函数下面使用来验证div中的所有字段。我的问题是,即使我填满所有字段,它总是返回false。

function validate(id) {
            //:text, :checkbox, select, textarea
            var isFormValid = true;
            var div = $(id);
            $(div).find(":text, select").each(function () {
                if (this.value == "" && !$(this).hasClass("no-req")) {
                    $(this).addClass("required");
                    isFormValid = false;
                    $(this).focus();
                }
                else {
                    $(this).removeClass("required");
                }
            });
            if (!isFormValid) {
                alert("Please fill all the higlighted fields!");
            }
            return isFormValid;

        }

在Asp.net按钮客户端上单击我正在使用此代码

 <asp:Button ID="btnSave" runat="server" Text="Save" class="btn btn-success" OnClientClick="javascript: return validate('#tdAdd');"   OnClick="btnSave_Click" />

2 个答案:

答案 0 :(得分:0)

改变这个:

$(div).find(":text, select").each(function () {
    if (this.val() == "" && !$(this).hasClass("no-req")) {

要:

div.find(":text, select").each(function () {
    if ($(this).val() == "" && !$(this).hasClass("no-req")) {

答案 1 :(得分:0)

为什么不使用内置的aspnet Custom Validator?然后,您可以搜索特定div内的所有TextBox,并返回Validator值。

<div id="validateTheseControls">
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <br />
    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
    <br />
    <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />

    <asp:CustomValidator ID="CustomValidator1" runat="server" 
    ClientValidationFunction="validateControlsInDiv" ErrorMessage="Not all fields are filled"></asp:CustomValidator>
</div>

<script type="text/javascript">
    function validateControlsInDiv(sender, element) {
        var isValid = true;

        $('#validateTheseControls input[type="text"]').each(function () {
            if ($(this).val() == "") {
                isValid = false;
            }
        });

        element.IsValid = isValid;
    }
</script>