我有两个输入类型日期字段,当更改第一个时,我需要添加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_entrega字段
<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文件,使原型功能工作。有了这个,每个用例都被覆盖,我的意思是在添加和修改项目时。
答案 0 :(得分:1)
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);
}
});
}
});