ソースコードなしで既存のモジュールを取得して、まったく異なることをさせるのではなく、本当に独自のカスタムモジュールが必要なようですね?
そうは言っても、既存のモジュールを実際に使用してそれを実現したい場合は、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>