Javascript ReferenceError:函数未定义,但它是

时间:2017-05-13 18:45:05

标签: javascript jquery asp.net

我已检查过代码,但我找不到任何错误。

<!-- language: lang-html -->

<div class="modal fade" id="loginModal" role="dialog">
    <div class="modal-dialog">
        <!-- Modal content-->
        <div class="modal-content">
            <div id="loginHeader" class="modal-header">
                <h4 class="modal-title">Oops, something not right.</h4>
            </div>
            <div id="loginContent" class="modal-body" runat="server">
            </div>
            <div id="loginButton" class="modal-footer">
                <button type="button" class="btn btn-warning" data-dismiss="modal">OK</button>
            </div>
        </div>
    </div>
    <button type="button" style="display: none;" id="btnShowLoginModal" data-toggle="modal" data-target="#loginModal">
    </button>
</div>
<script src="../Scripts/javascripts/jquery.js"></script>
<script src="../Scripts/javascripts/bootstrap.min.js"></script>
<script type="text/javascript">
    function ShowLoginDialog() {
        $("#btnShowLoginModal").click();
    }
</script>

该函数是从OnClick Event上的代码调用的。仍然不知道哪个部分是错误的。

protected void Button1_Click(object sender, EventArgs e)
{
    string result = ValidateLogin(Username.Value, Password.Value);

    if(result == MessageConstants.MessageSuccess)
    {
        Response.Redirect("~/Webpages/Character.aspx");
    }
    else if(result == MessageConstants.MessageFail)
    {
        ScriptManager.RegisterStartupScript(this, this.GetType(), Guid.NewGuid().ToString(), "ShowLoginDialog()", true);
    }
    else
    {
        ScriptManager.RegisterStartupScript(this, this.GetType(), Guid.NewGuid().ToString(), "ShowLoginDialog()", true);

    }
}

Element Inspector出错 enter image description here

3 个答案:

答案 0 :(得分:1)

RegisterStartupScript()在Web窗体末尾(</form>标记之前)发出脚本块。 source

但是之后定义了你的模态代码和ShowLoginDialog函数。尝试将</form>标记移到模式填充后的末尾。

答案 1 :(得分:0)

将您的代码放入document.ready()函数:

$( document ).ready(function() {
    function ShowLoginDialog() {
        $("#btnShowLoginModal").click();
    }
});

答案 2 :(得分:0)

移动

<script src="../Scripts/javascripts/jquery.js"></script>
<script src="../Scripts/javascripts/bootstrap.min.js"></script>
<script type="text/javascript">
    function ShowLoginDialog() {
        $("#btnShowLoginModal").click();
    }
</script>

进入head区块。然后,您需要更改ShowLoginDialog函数,使其看起来像这样:

function ShowLoginDialog() {
    $(function() {
        $("#btnShowLoginModal").click();
    });
}