表单验证后的datepicker

时间:2012-03-09 13:49:18

标签: javascript jquery jquery-ui validation uidatepicker

这里的大多数问题我发现使用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");
}

}

0 个答案:

没有答案