1

このjsコードを使用して、適切な電子メールがフォームに入力されていることを検証しています。そうでない場合は、警告ボックスが表示されます。

function validateForm() {   
    var valid = true;
    var errMsg = "";
    var email = document.emailform.email.value;
    //var fname = document.emailform.fname.value;
    var filter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;

   //if(fname.length <= 0) {
      //valid = false;
      //errMsg += "Please provide a valid first name.\n";
   //}
   if(email.length <= 0) {
      valid = false;
      errMsg += "Email address is required.\n";
   } else {
      if (!filter.test(email)) {
         valid = false;
         errMsg += "Please provide a valid email address.\n";
      }
   }   
   if (errMsg.length > 0) {
      alert(errMsg);
      return false;
   }
   }

クロージング前にこれを持っています...

<script>$('#awform').submit(validateForm);</script>

それはうまくいきます。

通常、body タグの前に入力する別の JavaScript コードがありますが、これは通常の状況では問題なく動作します。

<script language="JavaScript" type="text/javascript"> cbr202=Math.random()*10000000000000000;document.write('<scr'+'ipt language="JavaScript" src="http://mywebsite.com/track/static/landing.php?lpip=123&202cb='+cbr202+'" type="text/javascript"></scr' + 'ipt>'); </script>

この最後の部分は、私が使用するカスタム分析プログラム用です。

私が直面している問題は、2 つのスクリプトを一緒に使用すると、検証が機能しなくなることです。

私もです...

<script language="JavaScript" type="text/javascript"> cbr202=Math.random()*10000000000000000;document.write('<scr'+'ipt language="JavaScript" src="http://mywebsite.com/track/static/landing.php?lpip=123&202cb='+cbr202+'" type="text/javascript"></scr' + 'ipt>'); </script>
<script>$('#awform').submit(validateForm);</script>
</body>

リクエストに応じて、トラッキング スクリプトは次のようになります。

function t202Init(){
    //this grabs the cid, but if they set a forced kw, this will be replaced 

    if (readCookie('t202forcedkw')) {
        var cid = readCookie('t202forcedkw');
    } else {
        var cid = t202GetVar('cid');
    }

    var lpip = '<? echo htmlentities($_GET['lpip']); ?>';
    var campid = t202GetVar('campid');
    var OVRAW = t202GetVar('OVRAW');
    var OVKEY = t202GetVar('OVKEY');
    var OVMTC = t202GetVar('OVMTC');
    var c1 = t202GetVar('c1');
    var c2 = t202GetVar('c2');
    var c3 = t202GetVar('c3');
    var c4 = t202GetVar('c4');
    var target_passthrough = t202GetVar('target_passthrough');
    var keyword = t202GetVar('keyword');
    var referer = document.referrer;
    var resolution = screen.width+'x'+screen.height;
    var language = navigator.appName=='Netscape'?navigator.language:navigator.browserLanguage; 
    language = language.substr(0,2); 

    document.write("<script src=\"<?php echo $strProtocol; ?>://<? echo $_SERVER['SERVER_NAME']; ?>/jump/static/record.php?lpip=" + t202Enc(lpip)
        + "&campid="                + t202Enc(campid)
        + "&cid="               + cid
        + "&OVRAW="                 + t202Enc(OVRAW)
        + "&OVKEY="                 + t202Enc(OVKEY)
        + "&OVMTC="                 + t202Enc(OVMTC)
        + "&c1="                    + t202Enc(c1)
        + "&c2="                    + t202Enc(c2)
        + "&c3="                    + t202Enc(c3)
        + "&c4="                    + t202Enc(c4)
        + "&target_passthrough="    + t202Enc(target_passthrough)
        + "&keyword="               + t202Enc(keyword)
        + "&referer="               + t202Enc(referer)
        + "&resolution="            + t202Enc(resolution)
        + "&language="              + t202Enc(language)
        + "\" type=\"text/javascript\" ></script>"
    );

}

function  t202Enc(e){
    return encodeURIComponent(e);

}

function  t202GetVar(name){
    get_string = document.location.search;         
     return_value = '';

     do { 
        name_index = get_string.indexOf(name + '=');

        if(name_index != -1) {
            get_string = get_string.substr(name_index + name.length + 1, get_string.length - name_index);

            end_of_value = get_string.indexOf('&');
            if(end_of_value != -1) {                
                value = get_string.substr(0, end_of_value);                
            } else {                
                value = get_string;                
            }

            if(return_value == '' || value == '') {
                return_value += value;
            } else {
                return_value += ', ' + value;
            }
          }
        } 

        while(name_index != -1)

         //Restores all the blank spaces.
         space = return_value.indexOf('+');
         while(space != -1) { 
            return_value = return_value.substr(0, space) + ' ' + 
            return_value.substr(space + 1, return_value.length);

            space = return_value.indexOf('+');
          }

     return(return_value);

}

function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";

}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;

}

function eraseCookie(name) {
    createCookie(name,"",-1);
}


t202Init();
4

3 に答える 3

3

2 つのスクリプトの順序を入れ替えてみてください。カスタム分析プログラムが実行されているようですが、document.writeこれは少し厄介で、ドキュメントの残りの部分が正しく解析されない可能性があります。

于 2012-12-21T19:43:17.673 に答える
0

jQueryを使用してscript-tagを追加してみませんか。明らかにjQueryが含まれています。

試す

<script type="text/javascript">
    var cbr202 = Math.random() *10000000000000000;
    $('head').append('<scr'+'ipt type="text/javascript" src="http://mywebsite.com/track/static/landing.php?lpip=123&202cb='+cbr202+'" />');​
</script>
于 2012-12-21T19:46:39.233 に答える
0

埋め込まれた Javascript タグにより、スクリプトが壊れる可能性があります。次の形式のスクリプトを実行しようとするたびに:

<script>
   // Some stuff here
   <script>
       // More stuff here
   </script>
 </script>

スクリプトが壊れます。別の方法を使用して分析をロードしてみてください。

于 2012-12-21T19:43:49.877 に答える