Bagaimana cara memeriksa / memvalidasi di jQuery apakah tanggal akhir [kotak teks] lebih besar dari tanggal mulai [kotak teks]?
jquery
date
jquery-validate
memasukkan
sumber
sumber
Jawaban:
Hanya memperluas jawaban fusi. Metode ekstensi ini bekerja menggunakan plugin jQuery validate. Ini akan memvalidasi tanggal dan angka
Untuk menggunakannya:
atau
sumber
code
jika (nilai == 0) {return true; } else if (! / Invalid | NaN / ...code
Itu harus dilakukan, saya pikir
sumber
Sedikit terlambat ke pesta tapi ini bagian saya
Berikut detailnya:
sumber
Referensi jquery.validate.js dan jquery-1.2.6.js. Tambahkan kelas startDate ke kotak teks tanggal mulai Anda. Tambahkan kelas endDate ke kotak teks tanggal akhir Anda.
Tambahkan blok skrip ini ke halaman Anda: -
Semoga ini membantu :-)
sumber
Saya baru saja mengotak-atik jawaban danteuno dan menemukan bahwa meskipun bermaksud baik, sayangnya itu rusak di beberapa browser yang bukan IE. Ini karena IE akan sangat ketat tentang apa yang diterimanya sebagai argumen untuk
Date
konstruktor, tetapi yang lain tidak. Misalnya, Chrome 18 memberiHal ini menyebabkan kode mengambil jalur "bandingkan tanggal" dan semuanya menurun dari sana (misalnya
new Date("11")
lebih besar darinew Date("66")
dan ini jelas merupakan kebalikan dari efek yang diinginkan).Oleh karena itu, setelah pertimbangan saya memodifikasi kode untuk memberikan prioritas pada jalur "angka" di atas jalur "tanggal" dan memvalidasi bahwa input memang numerik dengan metode yang sangat baik yang disediakan dalam Memvalidasi angka desimal di JavaScript - IsNumeric () .
Akhirnya kodenya menjadi:
sumber
Nilai tanggal dari bidang teks dapat diambil dengan Metode .val () jquery seperti
Saya sangat menyarankan untuk mengurai string tanggal sebelum membandingkannya. Objek Tanggal Javascript memiliki metode parse () -, tetapi hanya mendukung format tanggal AS (YYYY / MM / DD). Ini mengembalikan milidetik sejak awal zaman unix, jadi Anda cukup membandingkan nilai Anda dengan> atau <.
Jika Anda menginginkan format yang berbeda (misalnya ISO 8661), Anda perlu menggunakan ekspresi reguler atau pustaka date.js gratis.
Jika Anda ingin menjadi super user-fiendly, Anda dapat menggunakan jquery ui datepickers sebagai ganti textfields. Ada varian pemilih tanggal yang memungkinkan untuk memasukkan rentang tanggal:
http://www.filamentgroup.com/lab/date_range_picker_using_jquery_ui_16_and_jquery_ui_css_framework/
sumber
Jadi saya perlu aturan ini bersifat opsional dan tidak ada saran di atas yang bersifat opsional. Jika saya memanggil metode itu akan ditampilkan sebagai diperlukan bahkan jika saya mengaturnya untuk membutuhkan nilai.
Ini panggilan saya:
Saya
addMethod
tidak sekuat jawaban teratas Mike E., tapi saya menggunakan datepicker JqueryUI untuk memaksa pemilihan tanggal. Jika seseorang dapat memberi tahu saya cara memastikan tanggalnya adalah angka dan memiliki metode opsional yang akan bagus, tetapi untuk saat ini metode ini berfungsi untuk saya:sumber
Pada javascript / jquery sebagian besar developer menggunakan perbandingan From & To date yang berupa string, tanpa mengubahnya menjadi format tanggal. Cara termudah untuk membandingkan dari tanggal lebih besar dari tanggal adalah.
Selalu parsing dari dan hingga tanggal sebelum perbandingan untuk mendapatkan hasil yang akurat
sumber
Saya suka apa yang dikatakan Franz, karena itulah yang saya gunakan: P
sumber
Atau Kunjungi tautan ini
sumber
sumber
Semoga ini bisa membantu :)
sumber
Pertama, Anda memisahkan nilai dari dua kotak input dengan menggunakan fungsi split. lalu gabungkan hal yang sama dalam urutan terbalik. setelah bangsa concat, parsing menjadi integer. lalu bandingkan dua nilai dalam pernyataan in if. mis. 1> 20-11-2018 2> 21-11-2018
setelah split dan concat nilai baru untuk perbandingan 20181120 dan 20181121 selanjutnya bandingkan sama.
sumber
ini seharusnya berhasil
sumber
Jika format dijamin benar YYYY / MM / DD dan sama persis di antara kedua kolom maka Anda dapat menggunakan:
Sebagai pembanding string
sumber