我想在输入表单上使用WaterMark作为我的一些文本框。问题是我有一个自动回发下拉列表,这会导致我的文本框水印文本在回发时闪烁。
以下是该方案的示例版本:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="scripts/jquery-1.4.2.min.js" type="text/javascript"></script>
<script src="scripts/jquery.watermark.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
$("#txtEmail").watermark("Email Address");
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtEmail" ErrorMessage="Email Invalid"></asp:RequiredFieldValidator>
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true">
<asp:ListItem Text="One" />
<asp:ListItem Text="Two" />
<asp:ListItem Text="Three" />
</asp:DropDownList>
<asp:Button ID="Button1" runat="server" Text="Button" />
</div>
</form>
</body>
这种行为的原因是因为jquery水印是客户端的。
我找到的一个解决方法是here。问题是我必须使用AjaxControlToolkit的WaterMarkTextBoxExtender,如果可能的话我想避免使用它。
编辑:我错了。我指出的上述解决方法不起作用。
所以我要找的是解决jquery水印和回发的问题。
答案 0 :(得分:0)
看起来我的选项不是使用下拉列表的自动回发,我将不得不使用jquery进行下拉更改的ajax调用,并使用来自ajax调用的返回数据更新页面上的控件。
我在一个样本中试过这个,我的WaterMark没有眨眼。除非我遇到任何副作用,否则我希望是这样。
如果有人有其他意见/建议,我会暂时搁置一段时间。