为了账号安全,请及时绑定邮箱和手机立即绑定

Ajax 表单未正确提交

Ajax 表单未正确提交

PHP
蝴蝶刀刀 2023-05-12 15:39:20
我有一个未正确提交的 Ajax 表单的下一个问题。我有 3 种形式,一种用于桌面,一种用于移动,还有一种位于模式内的形式。桌面版的第一个表格完美运行并通过 Cakephp 注册了我需要的所有数据。第二个是用于移动版本的,它显示一个错误,该错误来自我为使用 Jquery 进行错误处理而开发的函数。移动版表单和模态表单似乎都存在相同的问题。我通过 ajax 发送查询,但问题仍然存在,显示相同的错误。这是正确工作的表单的 Jquery 代码。   $('#nueva_normalidad_form').on('submit', function(e){    e.preventDefault();    $('#errorMain').html('');    var formContainer = $('#form_container');    var errorArea = $('#errorMain');    if(!validateDocApplication(errorArea)){        return;    }    var data = $('#nueva_normalidad_form').serialize();    var beforeSend = function () {        $('#sendDataButton').attr("disabled", true);    };    var error = function (a) {        $('#errorMain').html('<div class="alert alert-danger">' + info.txt + '</div>');        return a;    };    var success = function(info) {        info = $.parseJSON(info);        if (info.id === 200) {            formContainer.animate({                display: "none"            }, {                duration: 600,                complete: function () {                    formContainer.css("display", "none");                    $('div#successText').css("display", "block");                }            });            $('#successText').animate({                display: "block"            }, {duration: 700,                complete: function () {                    $('#successText').css("display", "block");                }            });            dataLayer.push({'eventcategory': 'Conversion', 'event': 'submitForm'});        } else {            $('#errorMain').html('<div class="alert alert-danger">' + error.txt + '</div>');        }    };    saveNewNormDoctor(data, beforeSend, success, error);});
查看完整描述

1 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

最后,我找到了解决问题的方法。通过为我需要的每个输入字段分配新的 ID,我得到了这个函数:


   function validateDocApplicationForm(errorArea) {

    var noError = true;


    if(!$('#name_form').val()){

        errorArea.html('<div class="alert alert-danger">Por favor, inserte el nombre</div>');

        noError = false;

    } else {

        name = $('#name_form').val();

        return name;

    }



    if(!$('#surname_form').val()){

        errorArea.html('<div class="alert alert-danger">Por favor, inserte el apellido</div>');

        noError = false;

    } else {

        surname = $('#surname_form').val();

        return surname;

    }


    if(!$('#email_form').val()){

        noError = false;

        errorArea.html('<div class="alert alert-danger">Por favor, inserte su correo</div>');

    } else {

        email = $('#email_form').val();


        var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;

        noError = re.test(email);

        return email;

    }


    if(!$('#tel_form ').val()){

        errorArea.html('<div class="alert alert-danger">Por favor, inserte el número de teléfono</div>');

        noError = false;

    }else {

        phone = $('#tel_form').val();

        return phone;


    }


    if(!$('#collegiate_form').val()){

        errorArea.html('<div class="alert alert-danger">Por favor, inserte el número de colegiado</div>');

        noError = false;

    } else {

        colegiado = $('#collegiate_form').val();

        return colegiado;

    }


    var valorSpec = $('#spec_form option:selected').val();

    if(!valorSpec){

        errorArea.html('<div class="alert alert-danger">Seleccione una especialidad</div>');

        noError = false;

    } 

    return noError;

}

我必须对我的标记进行的更改是:


               <div id="formNewnorm" class="bottom_margin">                                                           

                            <div class="col-md-12 col-sm-12 form-group top_margin no_side_paddings">

                                <div class="col-sm-6 col-md-6 no_padding_left">

                                    <input name="name" id="name_form" class="desesc form-control" type="text"  placeholder="<?= __('Nombre'); ?> *">

                                </div>

                                <div class="col-sm-6 col-md-6 no_side_paddings">

                                    <input name="surname" id="surname_form" class="desesc form-control" type="text"  placeholder="<?= __('Apellidos'); ?> *">

                                </div>

                            </div>

                            <div class="form-group">

                                <input name="email" id="email_form" class="desesc form-control" type="email" placeholder="<?= __('e-mail');?> *">

                            </div>

                            <div class="form-group">

                                <input name="phone" id="tel_form" class="desesc form-control" type="number" placeholder="<?= __('Número de contacto');?> *">

                            </div>

                            <div class="form-group">

                                <select class="desesc form-control" name="especialidad" id="spec_form">

                                    <option value="0"><?= __('Seleccione su especialidad'); ?></option>

                                    <?php foreach ($specs AS $k => $v) { ?>

                                        <option value="<?= $k; ?>"><?= $v; ?></option>

                                    <?php } ?>

                                </select>

                            </div>

                            <div class="form-group">

                                <input name="colegiado" id="collegiate_form" class="desesc form-control" type="number" placeholder="<?= __('Número de colegiado'); ?> *">

                            </div>

                        <div class="form-group">

                            <div class="radio radio_highlight">

                                <input type="radio" name="condiciones_form" id="condiciones_form" value="1" required="">

                                <label class="text-primary" for="condiciones_form">

                                   <?= __('He leído y acepto las');?> <a target="_blank" href="http://topdoctors.local/terminos-legales">

                                        <u><?= __('Condiciones de Uso'); ?></u></a>

                                </label>                                        

                            </div>

                            <input type="hidden" name="created" value="<?php echo date('Y-m-d H:i:s'); ?>" >

                        </div>

                        <div class="form-group">

                            <div id="errorModal"></div>                                                            

                            <button id="sendDataButton" class="btn btn-block btn-primary btn_md">

                                <?= __('Solicitar información'); ?>

                            </button>

                        </div>  

                    </div>

通过这种方法,我能够使用各自的名称和新 ID 将值重新分配给每个输入。因此通过 ajax 请求传递新值,我能够将我的数据注册到数据库中。


查看完整回答
反对 回复 2023-05-12
  • 1 回答
  • 0 关注
  • 95 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信