-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 验证在客户端进行验证,然后提交表单并在后端使用您的验证逻辑。

例如,检查电子邮件是否已存在于数据库中,或者用户名是否已被使用等。

于 2012-11-11T09:46:27.430 回答