jQuery警告框自动禁用

4

我已经在ascx脚本上编写了代码:

<script src="JScripts/jquery.alerts-1.1/jquery.alerts.js" type="text/javascript"></script>

<script>
$(function() {
        $('#ImageButton1').click(function() {
            jAlert('Please enter a valid Suggestion ID.', 'Case Entry');
        });
    });
</script>

并且在代码后面:

Page.ClientScript.RegisterStartupScript(this.GetType(), "Window", "callAlert();", true);

问题是当页面完全加载后,警告框会自动禁用。

为什么在单击“确定”按钮后警告框被禁用,如何正确调用callAlert函数。


你是想在页面加载时显示警告框并将其与用户单击 ImageButton1 一起使用吗? - ataddeini
当我在文本框中输入一些内容时,我会检查条件。如果条件为真,则会重定向到其他页面,否则将显示警告框。 - Rocky
5个回答

0

您可以在函数之前尝试放置以下行:

$(document).ready(function() {

这将使它变成:

$(document).ready(function() {
        $('#ImageButton1').click(function() {
            jAlert('Please enter a valid Suggestion ID.', 'Case Entry');
        });
    });
 });

如果您等待页面准备就绪,警告框将不会被覆盖(我希望如此)。
另外,当您勾选文本框时,请检查条件是否为假,然后发出警报。
条件不是假的吗?内置一个检查以确保条件确实为真。如果是的话?重定向。
编辑:
var answer = Confirm: ("This page will now redirect. Are you ready?")
if (answer)
//redirect
else
return

当弹出框显示时,需要在任何人单击“确定”按钮之前,页面不应重定向。 - Rocky

0

好的,首先重要的是要理解$(function(){...$(document).ready(function() {...是等效的,而且两者内部的任何内容都不会在页面完全加载之前执行。换句话说,没有必要使用


Page.ClientScript.RegisterStartupScript(this.GetType(), "Window", "callAlert();", true);

这可以被移除。另外,我看到你可能正在使用Web表单。请注意,将被渲染的Id属性不等于控件属性的Id。换句话说,如果您有一个带有Id为ImageButton1runat="server"控件,在jQuery中使用语法$('#ImageButton1')是行不通的。

考虑到这一点,我添加了下面的示例,该示例使用基于类属性的选择器。

<script type="text/javascript">
    $(function () {
        $('.ImageButton1').click(function (e) {
            var text = $('.TextBox1').val();
            var redirect = true;

            if (!text) {
                redirect = confirm('Empty...are you sure?');
            }

            if (redirect) {
                window.location.href = 'http://your-redirect-here.com';
            }
        });
    });
</script>

<input class="TextBox1" type="text" />
<input class="ImageButton1" type="button" value="Click" />

这应该能帮助你到达你想要去的地方。如果你有任何问题,请告诉我。


0
如果您正在使用主页面或页面,则无法获取按钮的客户端ID,因为您声明它应该声明为 $('#<%=ImageButton1.ClientID%>')$('[id$=ImageButton1]')希望它能解决您的问题。
$(document).ready(function(){
 $('#<%=ImageButton1.ClientID%>').click(function() {
            alert('Please enter a valid Suggestion ID.', 'Case Entry');
        });

});

0
var answer = Confirm: ("This page will now redirect. Are you ready?")
if (answer)
{
   //redirect
} else
{
     return false;
 }

0

jAlert 弹窗后添加以下内容:

return false;

然后像这样调用函数:

return callAlert();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接