/ / एक क्षेत्र के लिए दो बार jQuery सत्यापन नियम का उपयोग - jquery, सत्यापन, jquery-validate

किसी फ़ील्ड के लिए दो बार jQuery सत्यापन नियम का उपयोग करना - jquery, validation, jquery-validate

मैं एक ऐसे इनपुट फ़ील्ड को सत्यापित करने की कोशिश कर रहा हूं जिसमें उपयोगकर्ता की जन्मतिथि हो, और मुझे करने की ज़रूरत है दो चेक - 1. सुनिश्चित करें कि उपयोगकर्ता 18 वर्ष का है और 2. सुनिश्चित करें कि उसकी उम्र 100 से अधिक नहीं है।

मेरी कस्टम मान्य विधि -

$.validator.addMethod(
"datediff",
function(value, element, diff_years) {
var curr_date = new Date().getFullYear();
var element_date = Date.parse($(element).val()).getFullYear();
return element_date >= curr_date - diff_years;
}
);

और यहां "मैं नियम कैसे जोड़ता हूं।

var validator = $("form").validate({
rules: {
"dob": {datediff: 18}
},
messages: {
dob: {datediff: "You have to be 18 or more!"}
}
});

मैं इसका पुन: उपयोग कैसे करूं? datediff दो बार शासन करें, ताकि मैं दोनों चेक कर सकूं? मैंने बस एक और जोड़ने की कोशिश की datediff नियम, लेकिन यह काम नहीं किया।

संपादित करें: मुझे 2 अलग-अलग संदेश दिखाने की भी आवश्यकता है - उदाहरण के लिए - 1। "आपको 18 या उससे अधिक होना चाहिए" पहली शर्त के लिए, और "आप 100 से अधिक नहीं हो सकते" दूसरे के लिए।

उत्तर:

उत्तर № 1 के लिए 1

यदि आपको दो अद्वितीय संदेशों की आवश्यकता है, तो आपको दो अद्वितीय नियमों / विधियों की आवश्यकता होगी। आप अपना सामान्य कोड एक ही फ़ंक्शन में डाल सकते हैं और उसे कस्टम विधि के भीतर से कॉल कर सकते हैं।

कुछ इस तरह...

function datediff(value, diff_years) {
var curr_date = new Date().getFullYear();
var element_date = Date.parse(value.getFullYear();
return element_date >= curr_date - diff_years;
}

$.validator.addMethod( "over18", function(value, element) {
// your custom function below
// var result = datediff(value, 18);
// return true if age is greater than 18
// return false and error message will display
}, "You must be over 18");

$.validator.addMethod( "under100", function(value, element) {
// your custom function below
// var result = datediff(value, 100);
// return true if age is less than 100
// return false and error message will display
}, "You must be under 100");

$("form").validate({
rules: {
dob: {
over18: true,
under100: true
}
}
});

उत्तर № 2 के लिए 1

यदि आप 2 अलग-अलग संदेशों को संभालना चाहते हैं, तो शायद आप इसका उपयोग कर सकते हैं max तथा min

अधिकतम: तत्व को दिए गए अधिकतम की आवश्यकता होती है।
मिनट: तत्व को दिए गए न्यूनतम की आवश्यकता होती है।

नियम:

    rules: {
dob: {
min: 18,
max: 100,
required: true
}
}

संदेश प्रदर्शित:

    messages: {
dob: {
required: "Please enter the age",
min: "Enter the age above 18",
max: "Age should be below 100"
}
}

अंदर देखें JSFiddle


जवाब के लिए 0 № 3

रेंज नियम का उपयोग करने का प्रयास करें:

rules: {
field: {
required: true,
range: [18, 100]
}
}

स्रोत: http://jqueryvalidation.org/range-method