javascript - 避免刷新页面提交表单

标签 javascript jquery html ajax form-submit

每当使用我制作的这个表格(葡萄牙语)时,刷新会从页面中删除所有先前输入的数据。为什么会发生这种情况,我该如何解决?感谢您的宝贵时间。

<script type="text/javascript">
        function submitForm(){
            // Initiate Variables With Form Content
            var nome = $("#nome").val();
            var email = $("#email").val();
            var telefone = $("#telefone").val();
            var assunto = $("#assunto").val();
            var mensagem = $("#mensagem").val();

            $.ajax({
                type: "POST",
                url: "send-contact2.php",
                data: "nome=" + nome + "&email=" + email + "&telefone=" + telefone + "&assunto=" + assunto + "&mensagem=" + mensagem,
                cache:false,
                success: function (data) {
                    alert(data);
                }
            });
        }
</script>

<form id="myForm">
    <div class="col col-md-6">
        <input type="text" name="nome" id="nome" required value="" tabindex="1" placeholder="Nome">
        <input type="text" name="email" id="email" required value="" tabindex="2" placeholder="E-mail">
        <input type="text" name="telefone" id="telefone" required value="" tabindex="2" placeholder="Telefone">
        <select id="assunto" name="assunto" required>
            <option value="outros">Outros assuntos</option>
            <option value="encomendas">Encomendas</option>
         </select>
    </div>
    <div class="col col-md-6">
        <textarea name="mensagem" id="mensagem" cols="29" rows="8" placeholder="Mensagem"></textarea>
    </div>
    <div class="col col-md-12 ">
        <button name ="submit" type="submit" onclick="return submitForm();">Enviar</button>
    </div>
</form>

最佳答案

您的函数还需要返回 false 以阻止点击事件行为提交表单:

function submitForm(){
    // your code...
    return false;
}

更好的是,直接 Hook 到 formsubmit 事件并取消笨重的 onclick 处理程序,并使用 serialize() 为您收集表单数据:

<button name="submit" type="submit">Enviar</button>
<script type="text/javascript">
    $(function() {
        $('#myForm').submit(function(e) {
            e.preventDefault(); // stop form submission
            $.ajax({
                type: "POST",
                url: "send-contact2.php",
                data: $(this).serialize(),
                cache: false,
                success: function (data) {
                    alert(data);
                }
            });
        }
    });
</script>

关于javascript - 避免刷新页面提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34724100/

相关文章:

javascript - 条形图中的条形被挤在一起

jquery - 通过 Jquery Ajax 调用创建 TinyURL

javascript - 使用 sip.js 从 SIP 通话中录制麦克风和音频

javascript - 将按钮绑定(bind)到 Javascript 案例/操作

jquery - 在 jquery 中使用 overflow=hidden 获取窗口高度

php - 不错的搜索网址

javascript - jquery 函数内的脚本 src

javascript - 当ASP.net仅返回名称时,在JS中通过ID选择控件

javascript - 您可以从方法外部识别事件的调用者吗?

javascript - 一页上有两个导航固定导航栏