不执行if比较

时间:2013-11-29 20:27:57

标签: javascript asp.net

我有以下脚本:

<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%>'

中删除

2 个答案:

答案 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();
    }