0

dotnentnuke に分離コード ファイルのないユーザー コントロール ファイルがあります。

私は1つのテキストボックスと1つのリンクボタンを持つフォームを入れました。

ボタンを押したときにそのテキストボックスの値をクエリ文字列として渡し、別のページでアクセスしたいと考えています。

そのために、次のコードを書きましたが、機能しません。

 <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 に答える