使用水印验证文本框

时间:2012-03-12 19:05:52

标签: jquery asp-classic

我查看了有关如何执行此操作的帖子,但我是JQuery的新手,因此我可能会遗漏一些有助于我的表单设置方式的内容。

我有一个经典的asp页面,其搜索框在文本框中有一个水印“Employee Last Name”。我想根据需要验证此字段。水印工作正常,验证工作正常,但如果水印在那里则无法正确验证。我猜它看到watermakr是一个输入值?

有关如何保留水印并仍然验证此字段的任何提示?这是我正在使用的代码:

<script type="text/javascript">
//Form watermarks
    $(document).ready(function() {
        $('.watermarked_title').watermark('watermark');
    });
    </script>


    <script>
//Validation
    jQuery(document).ready(function(){
        // binds form submission and fields to the validation engine                    
        jQuery("#SearchForm").validationEngine();
    });

    </script>

表格代码:

<form action="EmpSearch.asp" method="Post" id="SearchForm">                         
    <input name="SearchLN" id="SearchLN" type="text" size="22" class="validate[required] searchBox watermarked_title" title="Employee Last Name" >&nbsp;&nbsp;
    <input type="submit" class="button" Value="Search">                     
</form>

2 个答案:

答案 0 :(得分:1)

水印值应在提交前清除:

  

表单提交 - 该插件会在表单提交之前自动清除所有水印,因此您无需在提交之前手动删除水印。

如果你正确使用它......:

  

在相同元素上使用水印和验证插件

     

如果您发现表单验证因水印而失败   在验证发生之前没有被清除,那么你需要调整   您设置水印和验证的顺序。

     

正确的顺序是始终先设置水印    - 特别是在验证之前。那是因为jQuery在表单提交过程中仔细控制事件的顺序,并调用它们   他们的订单。如果先设置验证,那么   表格将在水印清除前进行验证。

     

以正确的顺序设置水印和验证非常简单   将代码行放在正确的顺序中,就像在   以下示例:

$('#myElement').watermark('Required');
$('#myForm').validate();

source

答案 1 :(得分:0)

您需要处理表单的提交事件,并清除占位符的所有字段(不要将它们称为水印......这是图像)。

$('#myform').submit(function(){
    $('.placeholder').each(function(){
        var $placeholder = $(this);
        if ($placeholder.val() == $placeholder.attr('title')) {
            $placeholder.val('');
        }
    });
});

这假定您为这些占位符的字段提供“占位符”类,并且您使用该字段的title属性来存储占位符文本(相当常见)。如果不是这样的话,你需要稍微修改一下。