javascript - 使用 jquery 带水印的 ASP.NET 表单验证

标签 javascript jquery asp.net

我有一个带有水印的 asp.net 表单,如下所示:

   <form id="form1" runat="server">

<div class="form-inner">
                            <asp:TextBox ID="firstname" runat="server" value="First Name *" title="First Name *"
                                class="water"></asp:TextBox>
                            <asp:TextBox ID="lastname" runat="server" value="Last Name *" title="Last Name *"
                                class="water"></asp:TextBox>
                            <%--<input name="" value="Address *" title="Address *" type="text" class="water"/>--%>
                            <asp:TextBox ID="Address" runat="server" value="Address *" title="Address *" class="water"></asp:TextBox>
                            <%-- <input name="" value="City *" title="City *" type="text" class="water"/>--%>
                            <asp:TextBox ID="City" runat="server" value="City *" title="City *" class="water"></asp:TextBox>
                            <div>
                                <asp:DropDownList ID="drpStates" runat="server" CssClass="inpt">                                    
                                <asp:ListItem Selected="True">State*</asp:ListItem>
                                    <asp:ListItem>ACT</asp:ListItem>
                                    <asp:ListItem>NSW</asp:ListItem>
                                    <asp:ListItem>NT</asp:ListItem>
                                    <asp:ListItem>SA</asp:ListItem>
                                    <asp:ListItem>VIC</asp:ListItem>
                                    <asp:ListItem>WA</asp:ListItem>
                                </asp:DropDownList>

                                <%--  <input class="inpt" name="postalcode" id="postalcode" value="Postcode *" type="text"/>--%>
                                <asp:TextBox ID="postalcode" runat="server" class="inpt" title="Postcode *" value="Postcode *"></asp:TextBox>
                            </div>
                            <%-- <input name="" value="Phone number *" title="Phone number *" type="text" class="water"/>--%>
                            <asp:TextBox ID="txtPhoneNumber" runat="server" value="Phone number *" title="Phone number *"
                                class="water"></asp:TextBox>
                            <%-- <input name="" value="Email *" title="Email *" type="text" class="water"/>--%>
                            <asp:TextBox ID="txtEmail" runat="server" value="Email *" title="Email *" class="water"></asp:TextBox>
                            <div class="form-term">
                                <div class="chk-up">
                                    <%--<input name="" type="checkbox" value="" />--%>
                                    <asp:CheckBox ID="chkInsurance" runat="server" Text="Yes, include my free $ 15,000 Insurance" />
                                </div>
                                <div>
                                    <%--<input name="" type="checkbox" value="" checked="checked" />--%>
                                    <asp:CheckBox ID="chkNews" runat="server" Text="Yes, I would like to receive latest news" />
                                </div>
                            </div>
                            <div class="send-btn">
                                <%-- <a href="#">SEND ME A SECURE GOLD PACK</a>--%>
                                <asp:LinkButton ID="lnkSendEmail" runat="server" OnClick="lnkSendEmail_Click">SEND ME A SECURE GOLD PACK</asp:LinkButton>
                            </div>
                        </div>

水印代码是这样的:

jQuery(document).ready(function () {

        $(".water,.inpt").each(function () {
            $tb = $(this);
            if ($tb.val() != this.title) {
                $tb.removeClass("water");
            }
        });

        $(".water,.inpt").focus(function () {
            $tb = $(this);
            if ($tb.val() == this.title) {
                $tb.val("");
                $tb.removeClass("water");
            }
        });

        $(".water,.inpt").blur(function () {
            $tb = $(this);
            if ($.trim($tb.val()) == "") {
                $tb.val(this.title);
                $tb.addClass("water");
            }
        });
}); 

我想验证此表单,但由于水印,它未被验证。

我正在使用这个插件进行验证。

http://jquery.bassistance.de/validate/demo/themerollered.html

请给我建议解决方案。

谢谢

最佳答案

对初始化验证器的方式做出一些假设,您可以尝试替换验证器的元素和表单函数( http://docs.jquery.com/Plugins/Validation/Validator/element#elementhttp://docs.jquery.com/Plugins/Validation/Validator/form )

这是一个元素函数的示例:

    $().ready(function() {
        var myValidator = $("form")
                          .validate({...,
                                success: ...,
                                rules:... 
                         });

        // save the 'element' function              
        myValidator.elementSave = myValidator.element;
        // create a new 'element' function that reinit the unchanged watermarked input
        // before performing check with the 'saved' element function
        myValidator.element = function (elem) {
            if (!($(elem).is('.water,.inpt')))
                return myValidator.elementSave(arguments);
            else {
                var save = $(elem).val();
                if (save == elem.title)
                    $(elem).val('');
                var result = myValidator.elementSave(arguments);
                $(elem).val(save);
                return result;
                }
        };
    });

关于javascript - 使用 jquery 带水印的 ASP.NET 表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12803056/

相关文章:

javascript - 通过 jquery 添加类主体 tinymce

c# - 无法在 Gridview 的 RowCreated 上使用 FindControl 找到控件

asp.net - 使用 DirectoryEntry 和 C# 启动/停止 IIS 应用程序池需要哪些访问权限?

javascript - 当有人点击搜索结果链接时,Google 如何设置 HTTP Referrer?

javascript - 在嵌套的 div 中显示谷歌地图(拆分器)

javascript - Node.js - 无法使用 Cheerio 存储预期数据

javascript - 从 JQuery 中的值切换时,不要在更改时再次加载 div

javascript - HTML 状态下拉列表 - 显示选定的值而不是文本

c# - 将参数传递到 Task.Factory.StartNew

javascript - 处理 mailto : 中的双引号