0

我在 dotnentnuke 中有一个没有代码隐藏文件的用户控制文件。

我在其中放置了一个表单,其中有一个文本框和一个链接按钮。

当我按下按钮作为查询字符串在另一个页面中访问它时,我想传递该文本框的值。

为此,我编写了以下代码,但它不起作用。

 <asp:TextBox ID="txtemail" runat="server" class="txtbox" placeholder="Enter Email Here"></asp:TextBox>

<asp:LinkButton ID="LinkButton1" class="lbsubscrb" runat="server" 
                                PostBackUrl="~/Portals/_default/Skins/Gravity/Dummy.aspx?add=<% txtemail.Text %>" 
                                ForeColor="White">SUBSCRIBE</asp:LinkButton>

感谢所有答案...

4

1 回答 1

0

听起来您真的只需要自己的自定义模块,而不是尝试采用现有模块,没有源代码,并使其做一些完全不同的事情?

话虽如此,如果您真的想采用现有的模块并使其做到这一点,那么 jQuery 可能会成为您选择的方法。

基本上,您要劫持按钮的单击事件并将其发送到其他地方,类似于以下代码。实际上,我昨晚为我正在处理的另一个模块(顺便说一下,时事通讯订阅)编写了大部分内容,但删除了我的一些逻辑,以使您尝试做的事情变得更简单

编辑:替换了下面的 txtbox 类以匹配您的文本框的类

<script language="javascript" type="text/javascript">
    /*globals jQuery, window, Sys */
    (function ($, Sys) {
        $(document).ready(function () {

            var originalHref = $('.lbsubscrb a').attr('href');


            $('.lbsubscrb a').removeAttr("href");
            $('.txtbox').focus(function () {
                if($('.txtbox').val().indexOf('@')<1)
                    $('.txtbox').val('');
            });
            $('.txtbox').bind("keypress", function (e) {

                if (e.keyCode == 13) {
                    $('.lbsubscrb a').click();
                }
            });

            $('.lbsubscrb a').click(function () {
                //check if they hit enter in the textbox and submit the form
                if (validateEmail($('.txtbox').val())) {

                    //
                    //TODO: Add your jquery for the redirect call here.
                    //



                    //uncomment this line to actually use the original submit functionality
                    //eval(originalHref.replace('javascript:', ''));
                    //if postback is wanted uncomment next line
                    //$('.lbsubscrb a').removeAttr("href");
                } else {
                    alert('something wrong with your email');
                }
            });
        });
    }(jQuery, window.Sys));

    function validateEmail(email) { 
        var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
        return re.test(email);
    } 
</script>
于 2013-08-07T14:40:14.967 回答