0

ポップアップを使用して、その中にフォームを適用しています。ここで、JavaScript を使用してコントロールを検証したいと考えています。しかし、フォームを送信しようとすると、フォームフィールドがまったく検証されず、単にページが送信されます

私のjsコードは以下のとおりです:

function validateForm()
 {  
    var regex = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
    var uname = document.getElementById('user_name').value;
    if(uname=="")
    {
        alert("You cannot leave the email field empty");
        return false;
    }
    else if(uname.search(regex) == -1)
    {
        alert("Invalid email address format");
        return false;
    }
    else
    {
        return true;
    }
    return true;

 }

私の HTML div コードを以下に示します。ポップアップはその div からのみ読み込まれるため、div を使用しました。

<div id="logincontent">
<div class="form-box-top">
    <div class="form-box-bottom">
    <?php echo $this->Form->create('User',array('controller' => 'users', 'action' => 'login', 'id'=>'login', 'name'=>'login','onsubmit'=>'return validateForm();'));?>
        <div class="form-box-middle">
            <div class="login-form">
                <div class="re-title3">
                    <a class="pass" onclick="forget();" href="#">forgot password</a>
                </div>
                <div class="input-row">
                    <label>EMAIL</label>                    
                    <?php echo $this->Form->input('username', array('label' => '','class'=>'required','style'=>'margin: -5px 0px 0px 24px;','id'=>'user_name')); ?>
                </div>
                <div class="input-row"> 
                    <label>PASSWORD</label>
                    <?php echo $this->Form->input('password', array('type'=>'password','class'=>'required','label' => '','style'=>'margin: -5px 0px 0px 24px;')); ?>
                </div>
            </div>
            <div class="button_3">
                <?php echo $this->Form->submit('',array('label' => '','class'=>''));?>
            </div>
            <div class="button_3_1">
            <a style="background: url(<?php echo $this->webroot       ?>/images/registor-bt2.png) no-repeat left top;
float: left;border: 0px;width: 236px;height: 47px;" onclick="register()"; href="#"></a>
            </div>
            <div class="cr"></div>
        </div>
    <?php echo $this->Form->end(); ?>
    </div>
</div>

フォームを送信するたびに、フィールドをjs関数で検証したい

私は多くのことを試しましたが、それが悪意のある結果や予期しない結果をもたらすことを知りません.

どんな提案も楽しまれ、高く評価されます..

事前にサンクス....

4

1 に答える 1

1

まだ使用していない場合は、firebug をインストールします。

JQuery UIダイアログを使用することをお勧めします->モーダルフォームと検証

使用したくない場合は、少なくとも16 行目にある正規表現コードを確認してください。

于 2012-11-03T12:17:07.443 に答える