0

このメールフォーム検証スクリプトがあります:

    <script type="text/javascript" language="javascript">  
function validateForm(thisform){  
 if(thisform.Name.value=="") {  
   alert("Ooouuupppsss... You did not enter your Name.");  
   thisform.Name.focus();  
   return false;  
 }  
 if(thisform.Email.value=="") {  
   alert("Ooouuupppsss... You did not enter a valid Email Address.");  
   thisform.Email.focus();  
   return false;  
 }  
 if(thisform.Subject.value=="") {  
   alert("Ooouuupppsss... You did not enter your Subject.");  
   thisform.Subject.focus();  
   return false;  
 }  
 if(thisform.Message.value=="") {  
   alert("Ooouuupppsss... You did not enter your Message.");  
   thisform.Message.focus();  
   return false;  
 }  
}</script>  

ユーザーに有効な電子メール アドレスを入力させるには、このスクリプトに何を追加する必要があるか教えてください。また、残りのフィールドには、ユーザーがテキスト (リンクではなく) を入力できるようにしたいと考えています。

さまざまな Web サイトで見つけたさまざまなコードを追加しようとしましたが、機能しませんでした。これは、それらを正しく追加しているかどうかわからないためです。

私のリクエストを読んでくれてありがとう。

万歳、アンディ

4

2 に答える 2

0

正規表現のURL については、この投稿を参照してください: URL の正規表現

電子メールの検証については、この投稿を参照してください: JavaScript で電子メール アドレスを検証しますか?

X ブラウザのイベント リスニングについては、こちらを参照してください。jQueryを使用する場合、ie8 はアタッチを使用します。これを参照してください。

フォーム入力をループして、その電子メールかどうか、リンクに対して正規表現を実行していないかどうかを確認することをお勧めします。

(function(){ 
var validateForm = function(form){
    var errors = [], inputs = form.getElementsByTagName('input');
    for(var input = 0; input<inputs.length; input++){
        var currentInput = inputs[input];
        if(currentInput.value === ''){
            // handle attributes here for error message, push error message
            if(currentInput.attribute('name') === 'email'){
                // handle email
                // push error message
            }
        }
    }
    return errors; 
}

var contactForm = document.getElementById('contact');
contactForm.addEventListener('submit', function(e){ 
    var errorMessages = validateForm(contactForm);
    if(errorMessages.length === 0){

    } else {
        e.preventDefault() // stop the form from submitting
        // handle your messages 
    }
}
}());
于 2013-08-22T17:02:59.007 に答える