这里的大多数问题我发现使用datepicker来验证表单,但我有另一个问题。 所以一切正常(datepickers)但是当我验证表单并且没有插入某些字段时,datepickers将不再起作用。页面未重新加载,使用javascript进行检查,只有插入所有内容后,才会发布表单。
这是我在索引页面中使用的内容:
( function($) {
$(document).ready( function() {
$("#slider").easySlider({
auto: true,
continuous: true
});
$( ".tcal" ).datepicker({
changeMonth: true,
changeYear: true,
showOn: "both",
minDate: '-122Y',
maxDate:'0',
yearRange: "-122",
buttonImage: "/images/kalender3.gif",
buttonImageOnly: true
});
$( ".tver" ).datepicker({
changeMonth: true,
showOn: "both",
buttonImage: "/images/kalender3.gif",
buttonImageOnly: true,
minDate: '0',
maxDate: '+1Y'
});
$('.tcal,.tver').datepicker('option', $.extend({showMonthAfterYear: false},$.datepicker.regional['<?php print(($lng=='1')?'nl':'fr');?>']));
$('.tcal,.tver').datepicker( "option", "dateFormat", "dd/mm/yy" );
});
} ) ( jQuery );
和.tcal和.tver是两个带有datepickers的类。因此,当我按下发送,并且某些字段仍为空时,我收到消息“某些字段仍为空”。但是我的日期选择器不再适用了。我仍然得到图标,但没有错误。 有人知道我在哪里犯了错误吗?
当我检查元素时,我得到了这个:
<input type="text" onblur="correctDateFormat('vertrek')" value="" class="tver hasDatepicker" id="vertrek" name="vertrek">
这是我的提交代码:
function checkForm() {
boo_submit = 1;
arr_one = Array("naam", "voornaam", "straat", "postcode", "telefoon","email","vertrek");
arr_drop = Array("dpl_volwassenen","dpl_kinderen", "dpl_babys");
arr_kamers = Array("bf_room_double","bf_room_single","bf_room_triple","bf_room_quadruple");
for (o = 0; o < arr_one.length; o++) {
if ($("input[name=" + arr_one[o] + "]").val() == "") {
$("#err_" + arr_one[o]).remove();
$("input[name=" + arr_one[o] + "]").parent().html(
$("input[name=" + arr_one[o] + "]").parent().html()
+ "<span class='sprite spr_error' id='err_"
+ arr_one[o] + "'></span>");
boo_submit = 0;
} else {
$("#err_" + arr_one[o]).remove();
}
}
arr_empty_people = new Array();
int_sum_people = 0;
$("select[name^=dpl_]").each(function(){
str_val = $(this).val();
str_id = $(this).attr("id");
$("#err_" + str_id).remove();
if(str_val!="" && str_val!=0){
++int_sum_people;
}else{
arr_empty_people.push(str_id);
}
});
if(int_sum_people == 0){
boo_submit = 0;
int_limit_room = arr_empty_people.length;
for(r=0;r<int_limit_room;r++){
idx_room = arr_empty_people[r];
$("#" + idx_room).parent().append("<span class='sprite spr_error' id='err_"+ idx_room + "'></span>");
}
}
arr_empty_rooms = new Array();
int_sum = 0;
$("select[name^=bf_room_]").each(function(){
str_val = $(this).val();
str_id = $(this).attr("id");
$("#err_" + str_id).remove();
if(str_val!="" && str_val!=0){
++int_sum;
}else{
arr_empty_rooms.push(str_id);
}
});
if(int_sum == 0){
boo_submit = 0;
int_limit_room = arr_empty_rooms.length;
for(r=0;r<int_limit_room;r++){
idx_room = arr_empty_rooms[r];
$("#" + idx_room).parent().append("<span class='sprite spr_error' id='err_"+ idx_room + "'></span>");
}
}
if ($("input[name=email]").val().indexOf("@") == -1
|| $("input[name=email]").val().indexOf(".") == -1
|| $("input[name=email]").val().indexOf(".") == $(
"input[name=email]").val().length - 1) {
$("#err_email").remove();
$("input[name=email]")
.parent()
.html(
$("input[name=email]").parent().html()
+ "<span class='sprite spr_error' id='err_email'></span>");
} else {
$("#err_email").remove();
}
for (o = 0; o < 6; o++) {
var parenttr = document.getElementById('tbl_' + o);
if (parenttr.style.visibility != 'hidden') {
if ($("input[name=nm_" + o + "]").val() == "" || $("input[name=geb_"+o+"]").val() =="") {
$("#err_nm"+o).remove();
var html = document.getElementById('tbl_' + o).innerHTML;
$("#tbl_"+o).parent().html( $("#tbl_"+o).parent().html()+"<span class='sprite spr_error' id='err_nm"+o+"'></span>");
}else{
$("#err_nm"+o).remove();
}
}
}
if (boo_submit == 1) {
document.form.submit();
} else {
if ($("#lng").val() == 1)
alert("Gelieve alle gegevens in te vullen");
if ($("#lng").val() == 2)
alert("remplir tous les détails svp");
}
}