我有以下脚本:
<script type="text/javascript" language="javascript">
function ValMail() {
var txt = document.getElementById("<%= Email.ClientID%>");
"<%mailFormat(Email.Text)%>"
if ('<%= mType%>' != 'false') {
txt.value = '';
txt.focus();
}
}
</script>
我从asp.net页面控件中调用它:
<asp:TextBox ID="Email" runat="server" TabIndex="4" CssClass="textEntry"
CausesValidation="True" OnClientBlur="ValMail()" AutoPostBack="True">
</asp:TextBox>
OnClientBlur
调用脚本很好(我按照调试方式调整)来自if
行,但不会更进一步。
mType
是后面代码中声明的Public Shared
;而且非常肯定它的值为false
。我可以帮忙吗?
代码始终从'<%= mType%>'
答案 0 :(得分:1)
更新:建议的解决方案是使用RequiredFieldValidator和RegularExpressionValidator来验证电子邮件地址,这是一种更适合ASP.NET WebForms验证的方法。原始代码的基本缺陷是,它使用服务器生成的值测试客户端的电子邮件地址的有效性(因此不是用户输入的实际电子邮件,这始终是忽略)。 /更新结束
也许你可以在这里粘贴渲染的javascript,而不需要服务器端逻辑。只有浏览器看到的内容。
此外,这行可能是:
"<%mailFormat(Email.Text)%>"
缺少一个尾随的分号?
答案 1 :(得分:-1)
您必须将.net变量(数据)写为文字才能像javascript变量一样使用它。试试这个
使用mType
使用mType.toString()
的安装程序。见这个
var boolVar = '<%= mType.toString()%>';
// alert(boolVar);
if (boolVar != 'false')
{
txt.value = '';
txt.focus();
}