更改其他日期类型字段时,如何修改日期类型字段

How can I modify a date type field based when changing another date type field

本文关键字:字段 类型 日期 修改 何修改 其他      更新时间:2023-09-26

我有两个输入类型的日期字段,当更改第一个时,我需要添加14个工作日来设置第二个。我该怎么做?

这是所有的代码:

{% extends 'daciproveedorBundle::main.html.twig'%}
{% form_theme form 'dacicontratosBundle:Form:my_form_theme.html.twig' %}
{% block title %}{{ parent() }} - Edición de Contratos{% endblock %}
{% block css1st %}
<link rel="stylesheet" href="{{ asset('bootstrap/css/custom-bootstrap-header.css') }}" >
<link rel="stylesheet" href="{{ asset('bootstrap/css/custom-bootstrap-collapse.css') }}" >
<link rel="stylesheet" href="{{ asset('bootstrap/css/custom-bootstrap-grid_and_table.css') }}" >
<link rel="stylesheet" href="{{ asset('bootstrap/css/custom-bootstrap-tabs.css') }}" >
{% endblock css1st %}
{% block css2nd %}
<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<link href="{{ asset('bundles/genemuform/select2-3.5.0/select2.css') }}" rel="stylesheet"/>
<script src="{{ asset('bundles/genemuform/select2-3.5.0/select2.js') }}"></script>
{{ form_javascript(form) }}
{% endblock css2nd %}
{% block javascripts %}
    <script type="text/javascript" src="{{ asset('bundles/dacicontratos/js/jquery-2.0.3.js') }}"></script>
    <!-- <script type="text/javascript" src="{{ asset('bundles/dacicontratos/js/set_form_seguimiento.js') }}"></script> -->
    <!-- <script type="text/javascript" src="{{ asset('bundles/dacicontratos/js/set_form_garantia.js') }}"></script> -->
    <script type="text/javascript" src="{{ asset('bundles/dacicontratos/js/set_form_contratos_completo.js') }}"></script>

    <!-- jquery ui -->
    <link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/themes/smoothness/jquery-ui.css" />
    <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js"></script>


{% endblock %}


{% block page_content %}
{{ form_start(form) }}

<ul id="myTab" class="nav nav-tabs" role="tablist">
  <li {{ tab_selector|default('evaluacion') in ['evaluacion'] ? 'class="active"' : '' }} style="padding: 0px;"><a href="#evaluacion" role="tab" data-toggle="tab">Evaluación</a></li>
  <li {{ tab_selector|default('seguimiento') in ['seguimiento'] ? 'class="active"' : '' }} style="padding: 0px;"><a href="#seguimiento" role="tab" data-toggle="tab">Seguimientos</a></li>
  <li {{ tab_selector|default('garantia') in ['garantia'] ? 'class="active"' : '' }} style="padding: 0px;"><a href="#garantia" role="tab" data-toggle="tab">Garantías y Pólizas</a></li>
  <li {{ tab_selector|default('visita') in ['visita'] ? 'class="active"' : '' }} style="padding: 0px;"><a href="#visita" role="tab" data-toggle="tab">Visitas de Campo</a></li>
</ul>
<div id="myTabContent" class="tab-content">
    <div class="tab-pane fade {{ tab_selector|default('evaluacion') in ['evaluacion'] ? 'in active' : '' }}" id="evaluacion">
        <br/><br/>
        <h2 style="font-family: 'Oswald', sans-serif; font-weight: 300;">Contratos</h2>
        <br/><br/>
        <ul>
        <li>{{ form_row(form.proveedor) }}</li>
        <li>{{ form_label(form.codigo_referencia, 'Código referencia') }}{{ form_widget(form.codigo_referencia) }}</li>
        <li>{{ form_row(form.nombre) }}</li>
        <li>{{ form_label(form.contratoTipo, 'Tipo') }}{{ form_widget(form.contratoTipo) }}</li>
        <li>{{ form_row(form.fecha_inicio) }}</li>
        <li>{{ form_row(form.fecha_fin) }}</li>
        <li>{{ form_row(form.monto) }}</li>
        <li><p class="subtitle">Unidades</p></li>
        <div class="panel-group" id="accordion">
            {% set counter = 0 %}
            {% for array_unidad in unidades %}
                {% set counter = counter + 1 %}
                {% set unidad_nombre = "unidad_nombre" ~ counter %}
                {% set unidad_id = array_unidad.id %}
                <div class="panel panel-default">
                    <div class="panel-heading" data-toggle="collapse" {# data-parent="#accordion" #} href="#{{ unidad_nombre }}">
                        <h4 class="panel-title">
                            {{ array_unidad.nombre }}
                        </h4>
                    </div>
                    <div id="{{ unidad_nombre }}" class="panel-collapse collapse in">
                        <div class="panel-body">
                            <ul class="wide_label">
                            {% for array_contacto in array_unidad.contactos %}
                                {% for contacto in form.contactos %}
                                    {% if contacto.vars.value == array_contacto.id %}
                                            <li>
                                                {{ form_widget(contacto) }} 
                                                {{ form_label(contacto) }}
                                                {{ form_errors(contacto) }}
                                            </li>
                                    {% endif %}
                                {% endfor %}
                            {% endfor %}
                            </ul>
                        </div>
                    </div>
                </div> 
            {% endfor %}
        </div>
        <li><p class="subtitle">Sets de Preguntas</p></li>
            {% set contador = 1 %}
            {% set count = 0 %}
            {% set cerrar_div = 'si' %}
            {% for conjunto in form.conjuntos %}
            {% if contador == 1 and count == 0 %}
            <div class="row bg-custom-default">
            {% set count = 1 %}
            {% else %}
                {% if contador == 1 and count == 1 %}
                <div class="row bg-custom-white">
                {% set count = 0 %}
                {% endif %}
            {% endif %}
                <div class="col-md-3">
                    {{ form_widget(conjunto) }} {{ form_label(conjunto) }}
                </div>
            {% if contador == 3 %}
            </div> <!-- <br/><br/> -->
            {% set contador = 1 %}
            {% set cerrar_div = 'no' %}
            {% else %}
            {% set contador = contador + 1 %}
            {% set cerrar_div = 'si' %}
            {% endif %}

            {% endfor %}
            {% if cerrar_div == 'si' %}
            </div> <!-- <br/><br/> -->
            {% endif %}
        <br/>
        <br/>
        <li>{{ form_row(form.archivo) }}</li>
            {% if file_url is defined and file_url != "" %}
        <div id="file_attached">
                <li>{{ asset(file_url) }} - <a href="{{ asset(file_url) }}">Descargar <br/><img src="{{ asset('images/attachment.png')}}"></a></li>
        </div>
            {% endif %}
        </ul>
      </div>
    <div class="tab-pane fade {{ tab_selector|default('seguimiento') in ['seguimiento'] ? 'in active' : '' }}" id="seguimiento">
        <br/><br/>
        <h2 style="font-family: 'Oswald', sans-serif; font-weight: 300;">Registro</h2>
        <br/><br/>
        <table style="width: 750px; text-align: justify; border-collapse:separate; border-spacing:1em;">
            <tr>
                <td>{{ form_label(form.proveedor, 'Proveedor') }}</td>
                <td>
                    {% set label = '' %}
                    {% for choice in form.proveedor.vars.choices %}
                        {% if choice.value == form.proveedor.vars.value %}
                            {% set label = choice.label %}
                        {% endif %}
                    {% endfor %}
                    {{ label }}
                </td>
            </tr>
            <tr>
                <td>{{ form_label(form.nombre, 'Nombre contrato') }}</td>
                <td>{{ form.nombre.vars.value }}</td>
            </tr>
        </table>
        <!-- <hr/> -->
        <ul>
            <li><ul class="seguimientos" data-prototype="{{ form_widget(form.seguimientos.vars.prototype)|e }}">
                {% for pregunta in form.seguimientos %}
                <li>
                    {{ form_row(pregunta.titulo) }}
                    {# <!-- {{ form_row(pregunta.seguimientoTipo) }} --> #}
                    {{ form_row(pregunta.fecha_entrega) }}
                    {# <!-- {{ form_row(pregunta.fecha_prorroga) }} --> #}
                    {{ form_row(pregunta.descripcion) }}
                    {{ form_row(pregunta.loQueSeEspera) }}
                    {{ form_row(pregunta.isRecibido) }}
                    {{ form_row(pregunta.contactos) }}
                    {{ form_row(pregunta.comentarios) }}
                    {{ form_row(pregunta.archivo) }}
                    {% if pregunta.archivo.vars.value.name is defined %}
                        {% if pregunta.archivo.vars.value.name is not null %}
                            <label style="padding-bottom: 40px;">Descargar Archivo: </label> <a href="{{ asset( pregunta.archivo.vars.value.webpath ) }}">{{ pregunta.archivo.vars.value.name }}</a>
                        {% else %}
                            <label style="padding-bottom: 40px;">Descargar Archivo: </label> <a href="{{ asset( pregunta.archivo.vars.value.webpath ) }}">Clic Aquí</a> 
                        {% endif %}
                    {% endif %}
                    {{ form_row(pregunta.cumplimientoNoCumplimiento) }}
                </li>
                {% endfor %}
                </ul>
            </li>
        </ul>
    </div>
    <div class="tab-pane fade {{ tab_selector|default('garantia') in ['garantia'] ? 'in active' : '' }}" id="garantia">
        <br/><br/>
        <h2 style="font-family: 'Oswald', sans-serif; font-weight: 300;">Registro</h2>
        <br/><br/>
        <table style="width: 750px; text-align: justify; border-collapse:separate; border-spacing:1em;">
            <tr>
                <td>{{ form_label(form.proveedor, 'Proveedor') }}</td>
                <td>
                    {% set label = '' %}
                    {% for choice in form.proveedor.vars.choices %}
                        {% if choice.value == form.proveedor.vars.value %}
                            {% set label = choice.label %}
                        {% endif %}
                    {% endfor %}
                    {{ label }}
                </td>
            </tr>
            <tr>
                <td>{{ form_label(form.nombre, 'Nombre contrato') }}</td>
                <td>{{ form.nombre.vars.value }}</td>
            </tr>
        </table>
        <ul>
            <li><ul class="garantias" data-prototype="{{ form_widget(form.garantias.vars.prototype)|e }}">
                {% set cuenta = 0 %}
                {% for garantia in form.garantias %}
                <li>
                    {{ form_row(garantia.garantiaTipo) }}
                    {{ form_row(garantia.fecha_emision) }}
                    {{ form_row(garantia.fecha_vencimiento) }}
                    {{ form_row(garantia.fecha_recibido_daci) }}
                    {{ form_row(garantia.fecha_entrega) }}              {# fecha entrega al proveedor #}                

                    {{ form_row(garantia.empresa_emite_garantia) }}
                    {{ form_row(garantia.tiempo_de_garantia) }}
                    {{ form_row(garantia.estado) }}
                    {{ form_row(garantia.isRecibido) }}
                    {{ form_row(garantia.porcentaje) }}
                    {{ form_row(garantia.monto) }}
                    {{ form_row(garantia.comentarios) }}
                    {{ form_row(garantia.archivo) }}
                    {% if garantia.archivo.vars.value.name is defined %}
                        {% if garantia.archivo.vars.value.name is not null %}
                            <label style="padding-bottom: 40px;">Descargar Archivo: </label> <a href="{{ asset( garantia.archivo.vars.value.webpath ) }}">{{ garantia.archivo.vars.value.name }}</a>
                        {% else %}
                            <label style="padding-bottom: 40px;">Descargar Archivo: </label> <a href="{{ asset( garantia.archivo.vars.value.webpath ) }}">Clic Aquí</a> 
                        {% endif %}
                    {% endif %}
                </li>
                    {% set cuenta = cuenta + 1 %}
                {% endfor %}
                <script>
                (function($) {
                        $(document).ready(function(){
                            //alert("hola");

                            /*
                            var $second = jQuery('#contratos_garantias_0_fecha_entrega').datepicker({
                                dateFormat: 'yy-mm-dd'
                            });*/

                            var prefix = 'myClass';
                            var $inputs = $('.' + prefix);

                            $inputs.each(function (k, v) {
                                if (k % 2 === 0) {
                                    var $second = jQuery($inputs.get(k +1)).datepicker({
                                        dateFormat: 'yy-mm-dd'
                                    });
                                    var $first = jQuery(v).datepicker({
                                        dateFormat: 'yy-mm-dd',
                                        onSelect: function (dateStr) {
                                            var newDate = jQuery.datepicker.parseDate('yy-mm-dd', dateStr);
                                            newDate.setDate(newDate.getDate() + 10);
                                            $second.datepicker('setDate', newDate);
                                        }
                                    });
                                }
                            });
                        });
                })(jQuery);
            </script>
                </ul>
            </li>
        </ul>
    </div>
    <div class="tab-pane fade {{ tab_selector|default('visita') in ['visita'] ? 'in active' : '' }}" id="visita">
        <br/><br/>
        <h2 style="font-family: 'Oswald', sans-serif; font-weight: 300;">Registro</h2>
        <br/><br/>
        <table style="width: 750px; text-align: justify; border-collapse:separate; border-spacing:1em;">
            <tr>
                <td>{{ form_label(form.proveedor, 'Proveedor') }}</td>
                <td>
                    {% set label = '' %}
                    {% for choice in form.proveedor.vars.choices %}
                        {% if choice.value == form.proveedor.vars.value %}
                            {% set label = choice.label %}
                        {% endif %}
                    {% endfor %}
                    {{ label }}
                </td>
            </tr>
            <tr>
                <td>{{ form_label(form.nombre, 'Nombre contrato') }}</td>
                <td>{{ form.nombre.vars.value }}</td>
            </tr>
        </table>
        <ul>
            <li><ul class="visitas" data-prototype="{{ form_widget(form.visitas.vars.prototype)|e }}">
                {% for visita in form.visitas %}
                <li>
                    {{ form_row(visita.fechaProgramada) }}
                    {{ form_row(visita.fechaDeVisita) }}
                    {{ form_row(visita.isRealizada) }}
                    {{ form_row(visita.observaciones) }}
                    {{ form_row(visita.archivoInforme) }}
                    {% if visita.archivoInforme.vars.value.name is defined %}
                        {% if visita.archivoInforme.vars.value.name is not null %}
                            <label style="padding-bottom: 25px;">Descargar informe: </label> <a href="{{ asset( visita.archivoInforme.vars.value.webpath ) }}">{{ visita.archivoInforme.vars.value.name }}</a>
                        {% else %}
                            <label style="padding-bottom: 25px;">Descargar informe: </label> <a href="{{ asset( visita.archivoInforme.vars.value.webpath ) }}">Clic Aquí</a> 
                        {% endif %}
                    {% endif %}
                    {{ form_row(visita.archivoImagen) }}
                    {% if visita.archivoImagen.vars.value.name is defined %}
                        {% if visita.archivoImagen.vars.value.name is not null %}
                            <label style="padding-bottom: 25px;">Descargar imagen: </label> <a href="{{ asset( visita.archivoImagen.vars.value.webpath ) }}">{{ visita.archivoImagen.vars.value.name }}</a>
                        {% else %}
                            <label style="padding-bottom: 25px;">Descargar imagen: </label> <a href="{{ asset( visita.archivoImagen.vars.value.webpath ) }}">Clic Aquí</a>
                        {% endif %}
                    {% endif %}

                </li>
                {% endfor %}
                </ul>
            </li>
        </ul>
    </div>
</div>
{{ form_end(form) }}
{% endblock %}

这是生成的代码,但我有三个,因为我有很多contratos_garantias_fecha_recibido_daci和contratos_garantias_fecha_recent雷加字段

<div>
    <label style="vertical-align: top; padding-bottom: 35px;" for="contratos_garantias_0_fecha_recibido_daci" class="required">Fecha de recibido DACI</label>
<input type="date" id="contratos_garantias_0_fecha_recibido_daci" name="contratos[garantias][0][fecha_recibido_daci]" required="required"    class="myClass" value="2014-12-12" /></div>
<div><label style="vertical-align: top; padding-bottom: 35px;" for="contratos_garantias_0_fecha_entrega" class="required">Fecha de devolución al proveedor</label>
<input type="date" id="contratos_garantias_0_fecha_entrega" name="contratos[garantias][0][fecha_entrega]" required="required"    class="myClass" value="2014-10-15" /></div>

这是正在工作的代码部分,但现在的问题是在页面加载后添加的带有原型功能的新字段

<ul>
            <li><ul class="garantias" data-prototype="{{ form_widget(form.garantias.vars.prototype)|e }}">
                {% set cuenta = 0 %}
                {% for garantia in form.garantias %}
                <li>
                    {{ form_row(garantia.garantiaTipo) }}
                    {{ form_row(garantia.fecha_emision) }}
                    {{ form_row(garantia.fecha_vencimiento) }}
                    {{ form_row(garantia.fecha_recibido_daci) }}
                    {{ form_row(garantia.fecha_entrega) }}              {# fecha entrega al proveedor #}                

                    {{ form_row(garantia.empresa_emite_garantia) }}
                    {{ form_row(garantia.tiempo_de_garantia) }}
                    {{ form_row(garantia.estado) }}
                    {{ form_row(garantia.isRecibido) }}
                    {{ form_row(garantia.porcentaje) }}
                    {{ form_row(garantia.monto) }}
                    {{ form_row(garantia.comentarios) }}
                    {{ form_row(garantia.archivo) }}
                    {% if garantia.archivo.vars.value.name is defined %}
                        {% if garantia.archivo.vars.value.name is not null %}
                            <label style="padding-bottom: 40px;">Descargar Archivo: </label> <a href="{{ asset( garantia.archivo.vars.value.webpath ) }}">{{ garantia.archivo.vars.value.name }}</a>
                        {% else %}
                            <label style="padding-bottom: 40px;">Descargar Archivo: </label> <a href="{{ asset( garantia.archivo.vars.value.webpath ) }}">Clic Aquí</a> 
                        {% endif %}
                    {% endif %}
                </li>
                    {% set cuenta = cuenta + 1 %}
                {% endfor %}
                <script>
                (function($) {
                        $(document).ready(function(){
                            //alert("hola");

                            /*
                            var $second = jQuery('#contratos_garantias_0_fecha_entrega').datepicker({
                                dateFormat: 'yy-mm-dd'
                            });*/

                            var prefix = 'myClass';
                            var $inputs = $('.' + prefix);

                            $inputs.each(function (k, v) {
                                if (k % 2 === 0) {
                                    var $second = jQuery($inputs.get(k +1)).datepicker({
                                        dateFormat: 'yy-mm-dd'
                                    });
                                    var $first = jQuery(v).datepicker({
                                        dateFormat: 'yy-mm-dd',
                                        onSelect: function (dateStr) {
                                            var newDate = jQuery.datepicker.parseDate('yy-mm-dd', dateStr);
                                            newDate.setDate(newDate.getDate() + 10);
                                            $second.datepicker('setDate', newDate);
                                        }
                                    });
                                }
                            });
                        });
                })(jQuery);
            </script>
                </ul>

tomanow解决方案的答案很有魅力,但我不得不将这些代码添加到我的相关javascript文件中,以使原型功能发挥作用。这样,就涵盖了每个用例,我的意思是在添加和修改项目时。

var prefix = 'myClass';
var $inputs = $('.' + myClass);
$inputs.each(function (k, v) {
    if (k % 2 === 0) {
        var $second = $($inputs.get(k +1)).datepicker({
            dateFormat: 'yy-mm-dd'
        });
        var $first = $(v).datepicker({
            dateFormat: 'yy-mm-dd',
            onSelect: function (dateStr) {
                var newDate = $.datepicker.parseDate('yy-mm-dd', dateStr);
                newDate.setDate(newDate.getDate() + 14);
                $second.datepicker('setDate', newDate);
            }
        });
    }
});

FIDDLE