javascript - 验证表单 : Return false not possible/Always starts the action of the form

标签 javascript html

我使用表单向 API 提交一些数据。此外,我使用验证码来避免机器人。

我的问题:

如果用户输入错误的金额,他会收到错误警报。但在错误警报之后,脚本始终执行“action =“www.test.de”,因此用户没有机会纠正输入。 return false 也不起作用。

谁能指出错误吗?

脚本:

<script type="text/javascript">
        var a = Math.ceil(Math.random() * 10);
        var b = Math.ceil(Math.random() * 10);
        var c = a + b
        function DrawBotBoot() {
            document.write("Was ergibt " + a + " + " + b + "? ");
            document.write("<br/><input id='BotBootInput' type='text' maxlength='2' size='2'/><br/>");
        }

        function ValidBotBoot() {
            var d = document.getElementById('BotBootInput').value;
            if(d == c)
                $('#test_form').submit(function(evt) {
                    evt.preventDefault();
                    var uvSubdomain = "test";
                    var uvKey = "xxxxxxxxxxxxxx";
                    var message = $('#message').val();
                    var subject = $('#subject').val();
                    var name = $('#name').val();
                    var email = $('#email').val();
                    $.jsonp({
                        url : 'https://' + uvSubdomain + '.test/tickets/create_via_jsonp.json?callback=?',
                        data : {
                            client : uvKey,
                            ticket : {
                                message : message,
                                subject : ("Anfrage via Landingpage test.de")
                            },
                            name : name,
                            email : email
                        },
                        success : function(data) {
                            alert('Herzlichen Dank für Ihre Mitteilung! Wir werden uns umgehend bei Ihnen melden.');
                            window.open('index.html', '_self', false)
                        },
                        error : function(d, msg) {
                            alert("Leider konnte die Mitteilung nicht übermittelt werden.");
                        }
                    });
                    return false;
                });
            else
                alert('Falsches Ergebnis')
            document.contact.BotBootInput.focus();
            return false;
        }
    </script>

HTML:

<div id="contact_form">
                            <form id="test_form" name="contact" method="post" action="https://www.test.de">
                                <label for="name">Name</label>
                                <input type="text" name="name" id="name" value="" class="span3" />
                                <label for="email">E-Mail</label>
                                <input type="email" name="email" id="email" value="" class="span3" />
                                <label for="message">Mittteilung</label>
                                <textarea name="message" id="message"></textarea>
                                <div>
                                    <script type="text/javascript">DrawBotBoot()</script>
                                    <button class="btn btn-primary"  onclick="ValidBotBoot()">
                                        Senden
                                    </button>
                                </div>
                            </form>
                        </div>

最佳答案

试试这个:

else {
    alert('Falsches Ergebnis')
    document.contact.BotBootInput.focus();
    return false;
}

关于javascript - 验证表单 : Return false not possible/Always starts the action of the form,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12826365/

相关文章:

html - 像我的图片一样的 Flex Grid

javascript - jquery 将可排序列表(用户排序)导出到 csv?

javascript - Angular 5 组件在选择器中需要 `-` 吗?

javascript - 等待 for 循环结束以继续 JavaScript 中的函数

javascript - 使用 Phonegap 在 Android 上访问联系人

javascript - 如何使用通量 slider 更改图像大小

javascript - Twitter DropDown - 被图标而不是按钮触发

javascript - CSS设计题——在特定位置为div添加一个小背景图片

javascript - 在 html 文件中显示应用程序脚本文件中的数组

javascript - 有没有办法使用 javascript 将文件添加到 HTML5 applicationCache?