jQuery验证未来日期addMethod();

Die*_*ere 4 jquery date jquery-validate

jQuery的一些问题验证插件,并且仅在将来发布。

我有一个像这样的输入字段:

<input id="date_hinfahrt" class="gui-input error" type="date" required="" name="datefuture" placeholder=" DD/MM/YYYY" aria-required="true" aria-invalid="true">
Run Code Online (Sandbox Code Playgroud)

请,我不要在其中的日期选择器!只有一个这样的面具:

 $("#datefuture").mask('99/99/9999', {placeholder:'_'});
Run Code Online (Sandbox Code Playgroud)

对于验证插件,我尝试了这个addMethod();。但它不起作用,我希望有人能帮助我。

$.validator.addMethod("minDate", function(value, element) {
    var now = new Date(); 
    var myDate = new Date(value);
    var mD = ("0" + (myDate.getDate())).slice(-2) + '/' + ("0" + (myDate.getMonth()+1)).slice(-2) + '/' + myDate.getFullYear();
    var nowdate = ("0" + (now.getDate())).slice(-2) + '/' + ("0" + (now.getMonth()+1)).slice(-2) + '/' + now.getFullYear();
    return this.optional(element) || mD > nowdate;
    // else alert('Das passt nicht!' + mD +  '   ' + nowdate);
});
Run Code Online (Sandbox Code Playgroud)

Bar*_*mar 6

您可以直接比较日期,而不必进行所有串联。

jQuery.validator.addMethod("minDate", function (value, element) {
    var now = new Date();
    var myDate = new Date(value);
    return this.optional(element) || myDate > now;

    // else alert('Das passt nicht!' + mD +  '   ' + nowdate);

});
Run Code Online (Sandbox Code Playgroud)

设置小提琴的方式也有问题。您曾经有过name="date_hinfahrt",但是您rules:选择了使用datefuture。另外,formtools.js它不适用于type="date"输入,因此它清空了该字段,导致它总是抱怨该字段是必需的。我将其更改为type="text"

小提琴