2
$(document).ready(function () {
$.validator.setDefaults({
    submitHandler: function () {
        $('#search').submit(function () {
            var city = $("#city").val();
            var adults = $("#adults").val();
            var children = $("#children").val();
            var SDate = $("#hotelStartDate").val();
            var EDate = $("#hotelEndDate").val();
            SDate = SDate.substr(6, 4) + '-' + SDate.substr(3, 2) + '-' + SDate.substr(0, 2);
            EDate = EDate.substr(6, 4) + '-' + EDate.substr(3, 2) + '-' + EDate.substr(0, 2);
            jQuery(":submit", this).css("display", "none");
            jQuery(":submit", this).after("<span class='button nice awesome green large radius'>Searching...</span>");
            location.href = 'http://www.dhitrax.com/destination.php?checkin=' + SDate + '&checkout=' + EDate + '&city=' + city + '&adults=' + adults + '&children=' + children;
            return false;
        });
    },
    highlight: function (input) {
        $(input).addClass("ui-state-highlight");
    },
    unhighlight: function (input) {
        $(input).removeClass("ui-state-highlight");
    }
});
$().ready(function () {
    $.fn.themeswitcher && $('<div/>').css({
        position: "absolute",
        right: 10,
        top: 10
    }).appendTo(document.body).themeswitcher();
    $("#search").validate({
        rules: {
            city: "required",
            hotelStartDate: "required",
            hotelEndDate: "required"
        },
        messages: {
            City: "Please type your destination",
            hotelStartDate: "Select check in Date",
            hotelEndDate: "Select check out Date"
        }
    });
});
});
4

1 に答える 1

0

イベント ハンドラーを既存のjQuery 検証プロバイダーsubmitのイベントにバインドしないでください。フォームの送信には 2 回のクリックが必要です。これは、最初の送信時にハンドラーがバインドされ、2 回目の送信時にハンドラーが実行されるためです。submitHandler

これは、コードを に移動するのと同じくらい簡単submitHandlerです。

$.validator.setDefaults({
    submitHandler: function () {
        var city = $("#city").val();
        var adults = $("#adults").val();
        var children = $("#children").val();
        var SDate = $("#hotelStartDate").val();
        var EDate = $("#hotelEndDate").val();
        SDate = SDate.substr(6, 4) + '-' + SDate.substr(3, 2) + '-' + SDate.substr(0, 2);
        EDate = EDate.substr(6, 4) + '-' + EDate.substr(3, 2) + '-' + EDate.substr(0, 2);
        jQuery(":submit", this).css("display", "none");
        jQuery(":submit", this).after("<span class='button nice awesome green large radius'>Searching...</span>");
        location.href = 'http://www.dhitrax.com/destination.php?checkin=' + SDate + '&checkout=' + EDate + '&city=' + city + '&adults=' + adults + '&children=' + children;
    },
    highlight: function (input) {
        $(input).addClass("ui-state-highlight");
    },
    unhighlight: function (input) {
        $(input).removeClass("ui-state-highlight");
    }
});
于 2012-12-01T18:02:17.543 に答える