উত্তর:
শুধু ফিউশন উত্তর প্রসারিত। এই এক্সটেনশন পদ্ধতিটি jQuery যাচাইকরণ প্লাগইন ব্যবহার করে কাজ করে। এটি তারিখ এবং সংখ্যা বৈধ করবে
jQuery.validator.addMethod("greaterThan",
function(value, element, params) {
if (!/Invalid|NaN/.test(new Date(value))) {
return new Date(value) > new Date($(params).val());
}
return isNaN(value) && isNaN($(params).val())
|| (Number(value) > Number($(params).val()));
},'Must be greater than {0}.');
এটি ব্যবহার করতে:
$("#EndDate").rules('add', { greaterThan: "#StartDate" });
অথবা
$("form").validate({
rules: {
EndDate: { greaterThan: "#StartDate" }
}
});
code
যদি (মান == 0) {সত্য ফিরে আসে; } অন্যথায় যদি (! / অবৈধ | NaN / ...code
var startDate = new Date($('#startDate').val());
var endDate = new Date($('#endDate').val());
if (startDate < endDate){
// Do something
}
এটা আমার মনে হয় এটি করা উচিত
পার্টিতে কিছুটা দেরি হলেও এখানে আমার অংশ
Date.parse(fromDate) > Date.parse(toDate)
এখানে বিস্তারিত:
var from = $("#from").val();
var to = $("#to").val();
if(Date.parse(from) > Date.parse(to)){
alert("Invalid Date Range");
}
else{
alert("Valid date Range");
}
রেফারেন্স jquery.ediaate.js এবং jquery-1.2.6.js আপনার প্রারম্ভের তারিখ পাঠ্যবক্সে একটি স্টার্টডেট ক্লাস যুক্ত করুন। আপনার শেষ তারিখের পাঠ্যবক্সে একটি শেষ তারিখের ক্লাস যুক্ত করুন।
আপনার পৃষ্ঠায় এই স্ক্রিপ্ট ব্লক যুক্ত করুন: -
<script type="text/javascript">
$(document).ready(function() {
$.validator.addMethod("endDate", function(value, element) {
var startDate = $('.startDate').val();
return Date.parse(startDate) <= Date.parse(value) || value == "";
}, "* End date must be after start date");
$('#formId').validate();
});
</script>
আশাকরি এটা সাহায্য করবে :-)
আমি দান্তেওনোর উত্তরটি নিয়ে শুধু ঝিমঝিম করছিলাম এবং দেখেছি ভাল উদ্দেশ্য করার সময়, দুঃখের সাথে এটি বেশ কয়েকটি ব্রাউজারে নষ্ট হয়ে গেছে যা নয় । কারণ এটি Date
নির্মাণকারীর পক্ষে যুক্তি হিসাবে যা গ্রহণ করবে সে সম্পর্কে আইই যথেষ্ট কঠোর হবে তবে অন্যরা তা গ্রহণ করবে না। উদাহরণস্বরূপ, ক্রোম 18 দেয়
> new Date("66")
Sat Jan 01 1966 00:00:00 GMT+0200 (GTB Standard Time)
এর ফলে কোডটি "তুলনা করার তারিখগুলি" পাথের দিকে নিয়ে যায় এবং এগুলি সমস্ত সেখান থেকে উতরাইয়ের দিকে যায় (উদাহরণস্বরূপ এর new Date("11")
চেয়ে বড় new Date("66")
এবং এটি সম্ভবত পছন্দসই প্রভাবের বিপরীত)।
সুতরাং বিবেচনার পরে আমি কোডগুলি সংশোধন করে "তারিখগুলি" পাথের উপর "সংখ্যা" পাথকে অগ্রাধিকার দেব এবং যাচাই-র দশমিক সংখ্যার বৈধীকরণ - ইসনুমারিক () সংখ্যায় কার্যকর পদ্ধতি সহ ইনপুটটি সত্যই সংখ্যাসূচক কিনা তা যাচাই করেছিলাম ।
শেষ পর্যন্ত, কোডটি হয়ে যায়:
$.validator.addMethod(
"greaterThan",
function(value, element, params) {
var target = $(params).val();
var isValueNumeric = !isNaN(parseFloat(value)) && isFinite(value);
var isTargetNumeric = !isNaN(parseFloat(target)) && isFinite(target);
if (isValueNumeric && isTargetNumeric) {
return Number(value) > Number(target);
}
if (!/Invalid|NaN/.test(new Date(value))) {
return new Date(value) > new Date(target);
}
return false;
},
'Must be greater than {0}.');
পাঠ্য ক্ষেত্রগুলি থেকে তারিখের মানগুলি jquery এর .val () পদ্ধতিটির মতো করে আনা যায়
var datestr1 = $('#datefield1-id').val();
var datestr2 = $('#datefield2-id').val();
আমি তারিখের স্ট্রিংগুলির তুলনা করার আগে তাদের দৃ strongly়ভাবে পার্স করার পরামর্শ দিচ্ছি। জাভাস্ক্রিপ্টের তারিখ অবজেক্টটিতে একটি পার্স () রয়েছে - পদ্ধতি, তবে এটি কেবল মার্কিন তারিখের ফর্ম্যাটগুলি (YYYY / MM / DD) সমর্থন করে। এটি ইউনিক্স যুগের সূচনালগ্ন থেকে মিলিসেকেন্ডগুলি ফেরত দেয়, তাই আপনি নিজের মানগুলি> বা <এর সাথে তুলনা করতে পারেন।
আপনি যদি আলাদা ফর্ম্যাট চান (যেমন আইএসও 86 866161), আপনার নিয়মিত এক্সপ্রেশন বা ফ্রি ডেট.জেএস লাইব্রেরি অবলম্বন করতে হবে।
আপনি যদি সুপার ইউজার-ফ্যানডলি হতে চান তবে আপনি টেক্সটফিল্ডের পরিবর্তে জ্যাকুয়ারি ইউআই ডেটপিকার ব্যবহার করতে পারেন। একটি তারিখ পিকার বৈকল্পিক রয়েছে যা তারিখের সীমা প্রবেশ করতে দেয়:
http://www.filamentgroup.com/lab/date_range_picker_using_jquery_ui_16_and_jquery_ui_css_framework/
সুতরাং thisচ্ছিক হওয়ার জন্য আমার এই নিয়মটি দরকার ছিল এবং উপরের পরামর্শগুলির কোনওটিই .চ্ছিক নয়। যদি আমি যে পদ্ধতিটি এটি প্রয়োজন হিসাবে প্রদর্শিত হয় ততক্ষণ পর্যন্ত যদি আমি এটির কোনও মান প্রয়োজন বলে সেট করেও।
এটি আমার কল:
$("#my_form").validate({
rules: {
"end_date": {
required: function(element) {return ($("#end_date").val()!="");},
greaterStart: "#start_date"
}
}
});//validate()
আমার addMethod
মাইক ই এর শীর্ষ রেট করা উত্তরের মতো শক্তিশালী নয়, তবে আমি একটি তারিখ নির্বাচনের জন্য জোর করে JqueryUI ডেটপিকারকে ব্যবহার করছি। যদি কেউ আমাকে জানাতে পারেন যে কীভাবে তারিখগুলি সংখ্যা রয়েছে এবং পদ্ধতিটি toচ্ছিকভাবে কীভাবে করা যায় তা দুর্দান্ত হতে পারে তবে এই পদ্ধতিটি আমার পক্ষে কাজ করে:
jQuery.validator.addMethod("greaterStart", function (value, element, params) {
return this.optional(element) || new Date(value) >= new Date($(params).val());
},'Must be greater than start date.');
জাভাস্ক্রিপ্ট / জ্যাকুইরিতে বেশিরভাগ বিকাশকারী তারিখের ফর্ম্যাটে রূপান্তর না করেই ও তারিখের তুলনাটি স্ট্রিং ব্যবহার করে। তারিখ থেকে তুলনা করার সহজ উপায়টি তারিখের চেয়ে বেশি।
Date.parse(fromDate) > Date.parse(toDate)
সঠিক ফলাফল পেতে তুলনা করার আগে সর্বদা থেকে এবং তারিখে পার্স করুন
আমি ফ্রাঞ্জ যা বলেছিলাম তা পছন্দ করি, কারণ আমি যা ব্যবহার করছি তা: পি
var date_ini = new Date($('#id_date_ini').val()).getTime();
var date_end = new Date($('#id_date_end').val()).getTime();
if (isNaN(date_ini)) {
// error date_ini;
}
if (isNaN(date_end)) {
// error date_end;
}
if (date_ini > date_end) {
// do something;
}
$(document).ready(function(){
$("#txtFromDate").datepicker({
minDate: 0,
maxDate: "+60D",
numberOfMonths: 2,
onSelect: function(selected) {
$("#txtToDate").datepicker("option","minDate", selected)
}
});
$("#txtToDate").datepicker({
minDate: 0,
maxDate:"+60D",
numberOfMonths: 2,
onSelect: function(selected) {
$("#txtFromDate").datepicker("option","maxDate", selected)
}
});
});
অথবা এই লিঙ্কে যান
jQuery('#from_date').on('change', function(){
var date = $(this).val();
jQuery('#to_date').datetimepicker({minDate: date});
});
function endDate(){
$.validator.addMethod("endDate", function(value, element) {
var params = '.startDate';
if($(element).parent().parent().find(params).val()!=''){
if (!/Invalid|NaN/.test(new Date(value))) {
return new Date(value) > new Date($(element).parent().parent().find(params).val());
}
return isNaN(value) && isNaN($(element).parent().parent().find(params).val()) || (parseFloat(value) > parseFloat($(element).parent().parent().find(params).val())) || value == "";
}else{
return true;
}
},jQuery.format('must be greater than start date'));
}
function startDate(){
$.validator.addMethod("startDate", function(value, element) {
var params = '.endDate';
if($(element).parent().parent().parent().find(params).val()!=''){
if (!/Invalid|NaN/.test(new Date(value))) {
return new Date(value) < new Date($(element).parent().parent().parent().find(params).val());
}
return isNaN(value) && isNaN($(element).parent().parent().find(params).val()) || (parseFloat(value) < parseFloat($(element).parent().parent().find(params).val())) || value == "";
}
else{
return true;
}
}, jQuery.format('must be less than end date'));
}
আশা করি এটি সাহায্য করবে :)
প্রথমে আপনি বিভক্ত ফাংশন ব্যবহার করে দুটি ইনপুট বাক্সের মানগুলিকে বিভক্ত করুন। তারপরে বিপরীত ক্রমে একই কনক্যাট করুন। কনক্যাট জাতির পরে এটি পূর্ণসংখ্যায় বিশ্লেষণ করে। তারপরে যদি বিবৃতিতে দুটি মান তুলনা করুন। উদাঃ> 20-11-2018 2> 21-11-2018
20181120 এবং 20181121 এর সাথে তুলনা করার জন্য নতুন মানগুলি ভাগ করে নেওয়ার পরে এর তুলনা করুন।
var date1 = $('#datevalue1').val();
var date2 = $('#datevalue2').val();
var d1 = date1.split("-");
var d2 = date2.split("-");
d1 = d1[2].concat(d1[1], d1[0]);
d2 = d2[2].concat(d2[1], d2[0]);
if (parseInt(d1) > parseInt(d2)) {
$('#fromdatepicker').val('');
} else {
}
এই কাজ করা উচিত
$.validator.addMethod("endDate", function(value, element) {
var startDate = $('#date_open').val();
return Date.parse(startDate) <= Date.parse(value) || value == "";
}, "* End date must be after start date");
যদি ফর্ম্যাটটি সঠিক ওয়াইওয়াইওয়াই / এমএম / ডিডি এবং দুটি ক্ষেত্রের মধ্যে ঠিক একইর জন্য গ্যারান্টিযুক্ত থাকে তবে আপনি ব্যবহার করতে পারেন:
if (startdate > enddate) {
alert('error'
}
একটি স্ট্রিং তুলনা হিসাবে