我有这个问题
我有一个输入,根据radio
选择,它会变为type number or date
,还有一个选择,所有这些都在我的表单中,带有提交按钮。
问题是,如果按下第一个无线电并发送数据,它就可以正常工作,但如果我有机会获得date type
并返回number type
,它会保存最旧的数据并保存选择提交后的价值。
我可以在改变输入后清除输入
我的观点
<form class="form-horizontal" id="form_transferencias_enviadas">
<fieldset>
<legend>Parámetro de impresión</legend>
<div class="form-group">
<div class="col-xs-2">
<input type="number" min="0" id="parametro_impresion" required>
</div>
<div class="col-xs-3" id="hasta_hidden" hidden>
<span>Hasta:</span>
<input type="date" id="parametro_impresion_hasta">
</div>
</div>
<div class="form-group">
<div class="col-xs-2" id="select_hidden" hidden>
<select id="slc_transferencia_destino" class="form-control" style="width: 100%;">
@foreach($empresas as $empresa)
@if($empresa->nombre!=Auth::user()->activo()->pluck('nombre')->first())
<option value="{{$empresa->nombre}}">{{$empresa->nombre}}</option>
@endif
@endforeach
</select>
</div>
</div>
<div>
<button type="submit" class="btn btn-primary">Buscar</button>
</div>
</fieldset>
</form>
我的js
//ocultar campos
$(document).ready(function() {
$('input[name="busqueda_radio"]').on('ifClicked', function(event) {
var num = parseInt(this.value)
switch (num) {
case 1:
$('#select_hidden').prop('hidden', true).prop('disabled', true)
$('#hasta_hidden').prop('hidden', true).prop('disabled', true)
$('#parametro_impresion').prop('type', 'number').val('').prop('hidden', false).prop('disabled', false)
submit_buton(num)
break
case 2:
$('#select_hidden').prop('hidden', true).prop('disabled', true)
$('#parametro_impresion').prop('type', 'date').val('').prop('hidden', false).prop('disabled', false)
$('#hasta_hidden').prop('hidden', false).prop('disabled', false)
submit_buton(num)
break
case 3:
$('#hasta_hidden').prop('hidden', true).prop('disabled', true)
$('#parametro_impresion').prop('hidden', true).prop('disabled', true)
$('#select_hidden').prop('hidden', false).prop('disabled', false)
submit_buton(num)
break
}
})
})
function por_numero(numero_transferencia) {
console.log(numero_transferencia)
}
function por_fecha(desde, hasta) {
console.log(desde + ' hasta ' + hasta)
}
function por_destino(destino) {
console.log(destino)
}
function submit_buton(caso) {
$('#form_transferencias_enviadas').submit(function(e) {
e.preventDefault()
switch (caso) {
case 1:
por_numero($('#parametro_impresion').val())
break
case 2:
por_fecha($('#parametro_impresion').val(), $('#parametro_impresion_hasta').val())
break
case 3:
por_destino($('#slc_transferencia_destino').val())
break
}
})
}
&#13;
感谢您的帮助
答案 0 :(得分:2)
每次拨打submit_buton
时,都会向表单添加一个新的submit
处理程序,但是您不会删除旧的$('#form_transferencias_enviadas').off("submit").submit(function(e) {
...
});
处理程序。因此,当您提交表单时,它会运行所有您附加的提交处理程序。
您应该在添加新处理程序之前删除旧处理程序:
var mongoose = require('mongoose'),
sw = require('swagger-node-express'),
config = require('./config'),
db = mongoose.connection;
db.on('error', function() {
console.log('Database connection error'.red);
});
db.on('connecting', function () {
console.log('Database connecting'.cyan);
});
mongoose.connect(config.db_url, {server: {auto_reconnect: true}});