3

以下是否有任何原因不起作用,它似乎适用于除以下情况之外的所有情况:

我的 html/asp.net

<div class="submitContainerConfirm" id="submit_Div">       
    <asp:PlaceHolder runat="server" id="phContinue">
        <asp:ImageButton CausesValidation="false" CssClass="ShowPleaseWait button" runat="server" ID="ibtnContinue" OnClick="ibtnContinue_OnClick" />
    </asp:PlaceHolder>
</div>

我的原型

function pageLoad() {

$$(".ShowPleaseWait").each(function (el) {
    el.observe("click", function (event) {
        if (Page_IsValid) {
            el.hide();
            el.insert({ after: '<img src="/content/images/processing.gif" /> Please Wait...' });
            alert('Is Valid');
        }
        alert('Is not Valid');
    });
});

}

尝试二:

Event.observe(window, 'load', function () {

Event.observe("click", function (event) {
    if (Page_IsValid) {
        event.hide();
        event.insert({ after: '<img src="/content/images/processing.gif" /> Please Wait...' });
        alert('Is Valid');
    }
    alert('Is not Valid');
});

Event.observe("click", function (event) {
    if (Page_IsValid) {
        event.hide();
        event.insert({ after: '<img src="/content/images/processing.gif" /> Processing...' });
        alert('Is Valid');
    }
    alert('Is not Valid');
});

});

// 这也不起作用。请不要jquery。

在 html + prototypejs 中呈现的 asp 示例奇怪地不起作用。

4

2 回答 2

3

在您的第二次尝试中,您没有为要监听elementobserve事件指定任何内容,它如何知道单击了哪个元素?

试试这个:

Event.observe(window, 'load', function() {
    $$('.ShowPleaseWait').each(function(el) {
        el.observe('click', function(ev) {
            if (Page_IsValid) {
                el.hide();
                el.insert({ 
                    after: '<img src="/content/images/processing.gif" /> Please Wait...'
                });

                alert('Is Valid');
            }

            alert('Is not Valid');
        });
    }); 
});

更新

查看JSFiddle 生成页面的截图,这是这个fiddle的直接输出

于 2012-06-25T08:42:36.657 回答
1

抱歉,我目前无法发表评论,但我现在看到的情况似乎不会触发 Page_IsValid,因为表单没有验证控件。通过使用@epochs JS 解决方案,您可以触发预期结果。

注意:我没有为您的 OnClick 事件使用任何 EventHandlers

通过添加示例文本框来强制进行验证,看看以下是否有帮助...

<div class="submitContainerConfirm" id="submit_Div">       
<asp:PlaceHolder runat="server" id="phContinue">
    <asp:TextBox ID="required" runat="server"></asp:TextBox>
    <asp:RangeValidator
        ID="rangeValidator"
        ErrorMessage="Enter 0-10"
        runat="server"
        MinimumValue="0"
        MaximumValue="10"
        ControlToValidate="required"></asp:RangeValidator>
    <asp:ImageButton CausesValidation="false" CssClass="ShowPleaseWait button" runat="server" ID="ibtnContinue" OnClick="ibtnContinue_OnClick" />
</asp:PlaceHolder>

于 2012-06-26T00:19:47.667 回答