-3

入力フィールドの値に基づいて、送信時にURLにリダイレクトするフォームがあります。しかし、電子メールが正しくない場合でも、私のフォームは送信されます。どうすれば修正できますか?このフォームのURLはdokuchaeva.com/donate/です。検証する必要があるのは電子メールです。最近のブラウザは、デフォルトで購入することを検証します。電子メールフィールドが間違っている場合はアラートがありますが、フォームは引き続き送信されます。フォームを送信し、挿入された情報に基づいて事前定義されたURLにリダイレクトする必要があります。

            <form>
                <label>DONATION AMOUNT</label> <input name="price" id="price" class="button" value="100" required size="6" tabindex="1"> RUB<br><br>
                <label>YOUR E-MAIL</label> <input type="email" name="user_email" id="user_email" required="" placeholder="email@example.com" class="button" autofocus="autofocus" tabindex="0">
                <input type="submit" id="submit" value="SUBMIT" class="button" tabindex="3" onclick="location.href= 'http://secure.onpay.ru/pay/dokuchaeva?'+'pay_mode=fix&pay_for=donation&price='+$('#price').val()+'&currency=RUR&user_email='+$('#user_email').val()+'&pay_for=donation&convert=no&ln=en&url_success=dokuchaeva.com/donate/success.html&url_fail=dokuchaeva.com/donate/fail.html';">
            </form>
4

2 に答える 2

1

form.submit 関数を使用します。true を返すと、フォームの送信がすでに処理されているか、中止する必要があることがわかります。戻り値が false の場合、ブラウザはフォームを正常に送信します。

<script>
   function validateme(form) {
       var isValid = false; // default, not true
       for(var el in form.elements) if(form.elements.hasOwnProperty(el) {
           // perform checks here
            if(form.elements[el].value == "") isValid = false;
       }
       return !(isValid);
   }
</script>
<form action="getUrlHereOrDocumentLocationIsUsed" submit="return validateme(this)">
 ...
</form>
于 2012-11-11T09:38:28.713 に答える
0

まず、必要な検証の種類を指定する必要があります。

送信せずにフォームデータを処理するクライアントベースの検証のみが必要な場合。

非常に便利な Jquery Validation プラグインを確認してください。

http://docs.jquery.com/Plugins/Validation

クライアント ベースとバックエンド ベースの両方の検証が必要な場合は、最初に JQuery 検証を使用してクライアント側で検証する必要があります。次に、フォームを送信し、バックエンドで検証ロジックを使用します。

たとえば、電子メールがDBにすでに存在するかどうか、またはユーザー名がすでに使用されているかどうかなどを確認します.

于 2012-11-11T09:46:27.430 に答える