我查看了有关如何执行此操作的帖子,但我是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" >
<input type="submit" class="button" Value="Search">
</form>
答案 0 :(得分:1)
水印值应在提交前清除:
表单提交 - 该插件会在表单提交之前自动清除所有水印,因此您无需在提交之前手动删除水印。
如果你正确使用它......:
在相同元素上使用水印和验证插件
如果您发现表单验证因水印而失败 在验证发生之前没有被清除,那么你需要调整 您设置水印和验证的顺序。
正确的顺序是始终先设置水印 - 特别是在验证之前。那是因为jQuery在表单提交过程中仔细控制事件的顺序,并调用它们 他们的订单。如果先设置验证,那么 表格将在水印清除前进行验证。
以正确的顺序设置水印和验证非常简单 将代码行放在正确的顺序中,就像在 以下示例:
$('#myElement').watermark('Required');
$('#myForm').validate();
答案 1 :(得分:0)
您需要处理表单的提交事件,并清除占位符的所有字段(不要将它们称为水印......这是图像)。
$('#myform').submit(function(){
$('.placeholder').each(function(){
var $placeholder = $(this);
if ($placeholder.val() == $placeholder.attr('title')) {
$placeholder.val('');
}
});
});
这假定您为这些占位符的字段提供“占位符”类,并且您使用该字段的title
属性来存储占位符文本(相当常见)。如果不是这样的话,你需要稍微修改一下。