2

現在、dotmailer を使用して新しいフォーム (単純なテキスト ボックスと送信ボタン) を生成し、電子メール アドレスを dotmailer のアドレス帳に自動的に追加しています。

誰かが電子メール アドレスを送信すると、Web ページが表示されます。

<input type="hidden" name="ReturnURL" id="returnValueHidden" value="URL">

私は、「送信済み」という警告ボックスを表示し、ユーザーをサンキュー ページに誘導しない方法を考え出そうとしています。

解決?

document.getElementById('returnValueHidden').value = alert("Email successfully submitted.");

しかし、これはすべて、警告ボックスを表示し、次の URL にリダイレクトします (値が挿入されているかどうかに関係なく)。

http://dmtrk.net/undefined?result=success
404 The page you are looking for could not be found

とにかく、これを調整して、メールを送信するがリダイレクトしないようにすることはできますか。

完全なコード:

<script language="javascript">
<!--
function validate_signup(frm) {
var emailAddress = frm.Email.value;
var errorString = '';
if (emailAddress == '' || emailAddress.indexOf('@') == -1) {
errorString = 'Please enter your email address';
}


var els = frm.getElementsByTagName('input');
for (var i = 0; i < els.length; i++)
{
    if (els[i].className == 'text' || els[i].className == 'date' || els[i].className == 'number')
    {
        if (els[i].value == '')
            errorString = 'Please complete all required fields.';
    }
    else if (els[i].className == 'radio')
    {
        var toCheck = document.getElementsByName(els[i].name);
        var radioChecked = false;
        for (var j = 0; j < toCheck.length; j++)
        {
            if (toCheck[j].name == els[i].name && toCheck[j].checked)
                radioChecked = true;
        }
        if (!radioChecked)
            errorString = 'Please complete all required fields.';
    }
}

document.getElementById('returnValueHidden').value = alert("Email successfully submitted.");


var isError = false;
    if (errorString.length > 0)
        isError = true;

    if (isError)
        alert(errorString);
return !isError;
}


//-->
</script> 

HTML:

<form name="signup" id="signup" action="http://dmtrk.net/signup.ashx" method="post" onsubmit="return validate_signup(this)">
<input type="hidden" name="addressbookid" value="">
<input type="hidden" name="userid" value="41929">
<input type="hidden" name="ReturnURL" id="returnValueHidden" value="URL">

<input type="text" name="Email" onfocus="if(this.value=='Email')this.value='';" class="blueTextBox">

<input type="Submit" name="Submit" class="submit">
</form>
4

1 に答える 1

1

ページ全体をリロードせずに情報を送信するには、AJAX を使用する必要があります。jQuery などの既存の JavaScript ライブラリを使用するのが最も簡単です。

これらのページをチェックしてください:

于 2013-08-21T21:30:01.217 に答える