Update Praktik Budidaya

This commit is contained in:
2026-07-07 23:24:48 +07:00
parent ff3f930939
commit 734c3fba65
3 changed files with 468 additions and 100 deletions
@@ -104,11 +104,12 @@
</div>
<div class="form-check d-flex align-items-center gap-2 mt-1">
<input
class="form-check-input @error('teknik_pemangkasan') is-invalid @enderror"
class="form-check-input lainnya-checkbox @error('teknik_pemangkasan') is-invalid @enderror"
type="checkbox"
name="teknik_pemangkasan[]"
value="Lainnya"
id="teknik-pemangkasan-lainnya"
data-target="#input-teknik-pemangkasan-lainnya"
{{ old('teknik_pemangkasan_lainnya', $teknikPemangkasanLainnya) ? 'checked' : '' }}>
<label class="form-check-label text-nowrap" for="teknik-pemangkasan-lainnya">
@@ -117,6 +118,7 @@
<input
type="text"
id="input-teknik-pemangkasan-lainnya"
name="teknik_pemangkasan_lainnya"
id="input-teknik-pemangkasan-lainnya"
class="form-control form-control-sm w-50"
@@ -190,16 +192,18 @@
</div>
<div class="form-check d-flex align-items-center gap-2 mt-1">
<input class="form-check-input @error('alasan_tidak_penyerbukan') is-invalid @enderror"
<input class="form-check-input lainnya-radio @error('alasan_tidak_penyerbukan') is-invalid @enderror"
type="radio"
name="alasan_tidak_penyerbukan"
value="lainnya"
id="alasan-lainnya"
data-target="#input-alasan-lainnya"
{{ old('alasan_tidak_penyerbukan', $alasanTidakPenyerbukanLainnya) ? 'checked' : '' }}>
<label class="form-check-label text-nowrap" for="alasan-lainnya">Lainnya:</label>
<input type="text"
id="input-alasan-lainnya"
name="alasan_tidak_penyerbukan_lainnya"
class="form-control form-control-sm w-50"
value="{{ old('alasan_tidak_penyerbukan_lainnya', $alasanTidakPenyerbukanLainnya ?? '') }}"
@@ -308,16 +312,18 @@
</div>
<div class="form-check d-flex align-items-center gap-2 mt-1">
<input class="form-check-input @error('frekuensi_pemupukan') is-invalid @enderror"
<input class="form-check-input lainnya-radio @error('frekuensi_pemupukan') is-invalid @enderror"
type="radio"
name="frekuensi_pemupukan"
value="Lainnya"
id="frekuensi-pemupukan-lainnya"
data-target="#input-frekuensi-pemupukan-lainnya"
{{ old('frekuensi_pemupukan', $frekuensiPemupukanLainnya) ? 'checked' : '' }}>
<label class="form-check-label text-nowrap" for="frekuensi-pemupukan-lainnya">Berapa kali:</label>
<input type="text"
<input type="text"
id="input-frekuensi-pemupukan-lainnya"
name="frekuensi_pemupukan_lainnya"
class="form-control form-control-sm w-50"
value="{{ old('frekuensi_pemupukan_lainnya', $frekuensiPemupukanLainnya ?? '') }}"
@@ -427,16 +433,18 @@
</div>
<div class="form-check d-flex align-items-center gap-2 mt-1">
<input class="form-check-input @error('waktu_pemberian_pupuk') is-invalid @enderror"
<input class="form-check-input lainnya-radio @error('waktu_pemberian_pupuk') is-invalid @enderror"
type="radio"
name="waktu_pemberian_pupuk"
value="Lainnya"
id="alasan-lainnya"
id="waktu-lainnya"
data-target="#input-waktu-lainnya"
{{ old('waktu_pemberian_pupuk', $waktuPemberianPupukLainnya) ? 'checked' : '' }}>
<label class="form-check-label text-nowrap" for="alasan-lainnya">Lainnya:</label>
<label class="form-check-label text-nowrap" for="waktu_lainnya">Lainnya:</label>
<input type="text"
id="input-waktu-lainnya"
name="waktu_pemberian_pupuk_lainnya"
class="form-control form-control-sm w-50"
value="{{ old('waktu_pemberian_pupuk_lainnya', $waktuPemberianPupukLainnya) }}"
@@ -455,9 +463,9 @@
type="radio"
name="cara_pemberian_pupuk"
value="Ditabur di sekitar pohon"
id="cara-ditabur"
id="cara-pemberian-pupuk-ditabur"
{{ old('cara_pemberian_pupuk', $praktikBudidaya->cara_pemberian_pupuk) == 'Ditabur di sekitar pohon' ? 'checked' : '' }}>
<label class="form-check-label" for="cara-ditabur">Ditabur di sekitar pohon</label>
<label class="form-check-label" for="cara_pemberian_pupuk_ditabur">Ditabur di sekitar pohon</label>
</div>
<div class="form-check">
@@ -465,9 +473,9 @@
type="radio"
name="cara_pemberian_pupuk"
value="Dibenamkan dalam lubang/parit"
id="cara-dibenamkan"
id="cara-pemberian-pupuk-dibenamkan"
{{ old('cara_pemberian_pupuk', $praktikBudidaya->cara_pemberian_pupuk) == 'Dibenamkan dalam lubang/parit' ? 'checked' : '' }}>
<label class="form-check-label" for="cara-dibenamkan">Dibenamkan dalam lubang/parit</label>
<label class="form-check-label" for="cara_pemberian_pupuk_dibenamkan">Dibenamkan dalam lubang/parit</label>
</div>
<div class="form-check">
@@ -475,9 +483,9 @@
type="radio"
name="cara_pemberian_pupuk"
value="Dicairkan/dikocor"
id="cara-dicairkan"
id="cara-pemberian-pupuk-dicairkan"
{{ old('cara_pemberian_pupuk', $praktikBudidaya->cara_pemberian_pupuk) == 'Dicairkan/dikocor' ? 'checked' : '' }}>
<label class="form-check-label" for="cara-dicairkan">Dicairkan/dikocor</label>
<label class="form-check-label" for="cara_pemberian_pupuk_dicairkan">Dicairkan/dikocor</label>
</div>
<div class="form-check">
@@ -485,28 +493,29 @@
type="radio"
name="cara_pemberian_pupuk"
value="Disemprotkan ke daun"
id="cara-disemprotkan"
id="cara-pemberian-pupuk-disemprotkan"
{{ old('cara_pemberian_pupuk', $praktikBudidaya->cara_pemberian_pupuk) == 'Disemprotkan ke daun' ? 'checked' : '' }}>
<label class="form-check-label" for="cara-disemprotkan">Disemprotkan ke daun</label>
<label class="form-check-label" for="cara_pemberian_pupuk_disemprotkan">Disemprotkan ke daun</label>
</div>
<div class="form-check d-flex align-items-center gap-2 mt-1">
<input class="form-check-input @error('cara_pemberian_pupuk') is-invalid @enderror"
<input class="form-check-input lainnya-radio @error('cara_pemberian_pupuk') is-invalid @enderror"
type="radio"
name="cara_pemberian_pupuk"
value="Lainnya"
id="cara-lainnya"
id="cara-pemberian-pupuk-lainnya"
data-target="#input-cara-pemberian-pupuk-lainnya"
{{ old('cara_pemberian_pupuk', $caraPemberianPupukLainnya) ? 'checked' : '' }}>
<label class="form-check-label text-nowrap" for="cara-lainnya">Lainnya:</label>
<input type="text"
id="input-cara-pemberian-pupuk-lainnya"
name="cara_pemberian_pupuk_lainnya"
class="form-control form-control-sm w-50"
value="{{ old('cara_pemberian_pupuk_lainnya', $caraPemberianPupukLainnya ?? '') }}"
placeholder="Sebutkan cara lain...">
</div>
@error('cara_pemberian_pupuk')
<div class="error invalid-feedback d-block">{{ $message }}</div>
@enderror
@@ -514,6 +523,7 @@
</div>
<div class="mt-4 text-end">
<button type="submit" class="btn btn-success">
<i class="icon-base ti tabler-check me-1_5 icon-sm"></i>
Simpan
</button>
</div>
@@ -521,9 +531,7 @@
</div>
</form>
<form id="praktikBudidayaForm"
method="POST">
<form id="praktikBudidayaForm" action="{{ route('petani.praktik-budidaya.update', [$petani->id, $praktikBudidaya->id]) }}" method="POST">
@csrf
@method('PUT')
@@ -686,8 +694,8 @@
</div>
<div class="col-md-4 mb-4 form-control-validation">
<label class="form-label" for="metode-paling-sering-dilakukan">Metode Yang Paling Sering Dilakukan<span class="text-danger">*</span></label>
<input class="form-control @error('metode_paling_sereng_dilakukan') is-invalid @enderror" id="metode-paling-sering-dilakukan" name="metode_paling_sereng_dilakukan" value="{{ old('metode_paling_sering_dilakukan', $praktikBudidaya->metode_paling_sering_dilakukan) }}" placeholder="Contoh: Penyemprotan fungisida, sanitasi kebun, atau pengambilan hama secara manual">
@error('metode_paling_sereng_dilakukan')<div class="error invalid-feedback">{{ $message }}</div>@enderror
<input class="form-control @error('metode_paling_sering_dilakukan') is-invalid @enderror" id="metode-paling-sering-dilakukan" name="metode_paling_sering_dilakukan" value="{{ old('metode_paling_sering_dilakukan', $praktikBudidaya->metode_paling_sering_dilakukan) }}" placeholder="Contoh: Penyemprotan fungisida, sanitasi kebun, atau pengambilan hama secara manual">
@error('metode_paling_sering_dilakukan')<div class="error invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-4 mb-4 form-control-validation">
<label class="form-label" for="volume-obat-obatan-permusim">
@@ -877,9 +885,9 @@
<label class="form-check-label text-nowrap" for="cara-lainnya">Lainnya:</label>
<input type="text"
name="sumber_air_lainnya"
name="sistem_irigasi_lainnya"
class="form-control form-control-sm w-50"
value="{{ old('sumber_air_lainnya', $sistemIrigasiLainnya ?? '') }}"
value="{{ old('sistem_irigasi_lainnya', $sistemIrigasiLainnya ?? '') }}"
placeholder="Sebutkan sistem irigasi lain...">
</div>
@@ -910,9 +918,9 @@
<input class="form-check-input @error('jenis_hama') is-invalid @enderror"
type="checkbox"
name="kebiasaan_konservasi_tanah[]"
value="Membuat pematang/tanggul tanah di lahan miring supaya tanah tidak longsor ke bawah"
value="Membuat pematang atau tanggul tanah di lahan miring supaya tanah tidak longsor ke bawah"
id="konservasi-tanah-pematang"
{{ in_array('Membuat pematang/tanggul tanah di lahan miring supaya tanah tidak longsor ke bawah', old('kebiasaan_konservasi_tanah', $praktikBudidaya->kebiasaan_konservasi_tanah ?? [])) ? 'checked' : '' }}>
{{ in_array('Membuat pematang atau tanggul tanah di lahan miring supaya tanah tidak longsor ke bawah', old('kebiasaan_konservasi_tanah', $praktikBudidaya->kebiasaan_konservasi_tanah ?? [])) ? 'checked' : '' }}>
<label class="form-check-label" for="konservasi_tanah_pematang">Membuat pematang/tanggul tanah di lahan miring supaya tanah tidak longsor ke bawah</label>
</div>
@@ -975,62 +983,152 @@
</div>
<div class="mt-4 text-end">
<button type="submit" class="btn btn-success">
Simpan Praktik Budidaya
<i class="icon-base ti tabler-check me-1_5 icon-sm"></i>
Simpan
</button>
</div>
</div>
</div>
</form>
<form id="praktikBudidayaForm"
method="POST">
<form id="praktikBudidayaForm" action="{{ route('petani.praktik-budidaya.update', [$petani->id, $praktikBudidaya->id]) }}" method="POST">
@csrf
@method('PUT')
<div class="card mb-6">
<div class="card-body pt-12">
<!-- INFORMASI PETANI -->
<h5 class="pb-4 border-bottom mb-4">Struktur Biaya Produksi Permusim</h5>
<div class="row">
<div class="col-md-4 mb-4 form-control-validation">
<label class="form-label" for="upah-tenaga-kerja">Upah Tenaga Kerja<span class="text-danger">*</span></label>
<input class="form-control @error('upah_tenaga_kerja') is-invalid @enderror" id="upah-tenaga-kerja" name="upah_tenaga_kerja" value="{{ old('upah_tenaga_kerja', $praktikBudidaya->upah_tenaga_kerja) }}">
@error('upah_tenaga_kerja')<div class="error invalid-feedback">{{ $message }}</div>@enderror
<label class="form-label" for="upah_tenaga_kerja">Upah Tenaga Kerja<span class="text-danger">*</span></label>
<div class="input-group">
<span class="input-group-text">Rp</span>
<input
type="text"
class="form-control rupiah-input @error('upah_tenaga_kerja') is-invalid @enderror"
id="upah-tenaga-kerja"
name="upah_tenaga_kerja"
value="{{ old('upah_tenaga_kerja', filled($praktikBudidaya->upah_tenaga_kerja) ? number_format($praktikBudidaya->upah_tenaga_kerja, 0, ',', '.') : '' ) }}"
placeholder="Contoh: 150.000">
</div>
@error('upah_tenaga_kerja')
<div class="invalid-feedback d-block">{{ $message }}</div>
@enderror
</div>
<div class="col-md-4 mb-4 form-control-validation">
<label class="form-label" for="biaya-bibit">Biaya Bibit<span class="text-danger">*</span></label>
<input class="form-control @error('biaya_bibit') is-invalid @enderror" id="biaya-bibit" name="biaya_bibit" value="{{ old('biaya_bibit', $praktikBudidaya->biaya_bibit) }}">
@error('biaya_bibit')<div class="error invalid-feedback">{{ $message }}</div>@enderror
<label class="form-label" for="biaya_bibit">Biaya Bibit<span class="text-danger">*</span></label>
<div class="input-group">
<span class="input-group-text">Rp</span>
<input
type="text"
class="form-control rupiah-input @error('biaya_bibit') is-invalid @enderror"
id="biaya-bibit"
name="biaya_bibit"
value="{{ old('biaya_bibit', filled($praktikBudidaya->biaya_bibit) ? number_format($praktikBudidaya->biaya_bibit, 0, ',', '.') : '' ) }}"
placeholder="Contoh: 150.000">
</div>
@error('biaya_bibit')
<div class="invalid-feedback d-block">{{ $message }}</div>
@enderror
</div>
<div class="col-md-4 mb-4 form-control-validation">
<label class="form-label" for="biaya-pupuk">Biaya Pupuk<span class="text-danger">*</span></label>
<input class="form-control @error('biaya_pupuk') is-invalid @enderror" id="biaya-pupuk" name="biaya_pupuk" value="{{ old('biaya_pupuk', $praktikBudidaya->biaya_pupuk) }}">
@error('biaya_pupuk')<div class="error invalid-feedback">{{ $message }}</div>@enderror
<label class="form-label" for="biaya_pupuk">Biaya Pupuk<span class="text-danger">*</span></label>
<div class="input-group">
<span class="input-group-text">Rp</span>
<input
type="text"
class="form-control rupiah-input @error('biaya_pupuk') is-invalid @enderror"
id="biaya-pupuk"
name="biaya_pupuk"
value="{{ old('biaya_pupuk', filled($praktikBudidaya->biaya_pupuk) ? number_format($praktikBudidaya->biaya_pupuk, 0, ',', '.') : '') }}"
placeholder="Contoh: 150.000">
</div>
@error('biaya_pupuk')
<div class="invalid-feedback d-block">{{ $message }}</div>
@enderror
</div>
<div class="col-md-4 mb-4 form-control-validation">
<label class="form-label" for="biaya-pestisida">Biaya Obat-obatan/Pestisida<span class="text-danger">*</span></label>
<input class="form-control @error('biaya_pestisida') is-invalid @enderror" id="biaya-pestisida" name="biaya_pestisida" value="{{ old('biaya_pestisida', $praktikBudidaya->biaya_pestisida) }}">
@error('biaya_pestisida')<div class="error invalid-feedback">{{ $message }}</div>@enderror
<label class="form-label" for="biaya_pestisida">Biaya Obat-obatan/Pestisida<span class="text-danger">*</span></label>
<div class="input-group">
<span class="input-group-text">Rp</span>
<input
type="text"
class="form-control rupiah-input @error('biaya_pestisida') is-invalid @enderror"
id="biaya-pestisida"
name="biaya_pestisida"
value="{{ old('biaya_pestisida', filled($praktikBudidaya->biaya_pestisida) ? number_format($praktikBudidaya->biaya_pestisida, 0, ',', '.') : '') }}"
placeholder="Contoh: 150.000">
</div>
@error('biaya_pestisida')
<div class="invalid-feedback d-block">{{ $message }}</div>
@enderror
</div>
<div class="col-md-4 mb-4 form-control-validation">
<label class="form-label" for="biaya-sewa-alat">Biaya Sewa Alat/Mesin<span class="text-danger">*</span></label>
<input class="form-control @error('biaya_sewa_alat') is-invalid @enderror" id="biaya-sewa-alat" name="biaya_sewa_alat" value="{{ old('biaya_sewa_alat', $praktikBudidaya->biaya_sewa_alat) }}">
@error('biaya_sewa_alat')<div class="error invalid-feedback">{{ $message }}</div>@enderror
<label class="form-label" for="biaya_sewa_alat">Biaya Sewa Alat/Mesin<span class="text-danger">*</span></label>
<div class="input-group">
<span class="input-group-text">Rp</span>
<input
type="text"
class="form-control rupiah-input @error('biaya_sewa_alat') is-invalid @enderror"
id="biaya-sewa-alat"
name="biaya_sewa_alat"
value="{{ old('biaya_sewa_alat', filled($praktikBudidaya->biaya_sewa_alat) ? number_format($praktikBudidaya->biaya_sewa_alat, 0, ',', '.') : '') }}"
placeholder="Contoh: 150.000">
</div>
@error('biaya_sewa_alat')
<div class="invalid-feedback d-block">{{ $message }}</div>
@enderror
</div>
<div class="col-md-4 mb-4 form-control-validation">
<label class="form-label" for="biaya-penyediaan-air">Biaya Penyediaan/Pengelolaan Air<span class="text-danger">*</span></label>
<input class="form-control @error('biaya_penyediaan-air') is-invalid @enderror" id="biaya-penyediaan-air" name="biaya_penyediaan-air" value="{{ old('biaya_penyediaan-air', $praktikBudidaya->biaya_penyediaan_air) }}">
@error('biaya_penyediaan-air')<div class="error invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-4 mb-4 form-control-validation">
<label class="form-label" for="biaya-lainnya">Biaya Lain-lainnya<span class="text-danger">*</span></label>
<input class="form-control @error('biaya_lainnya') is-invalid @enderror" id="biaya-lainnya" name="biaya_lainnya" value="{{ old('biaya_lainnya', $praktikBudidaya->biaya_lainnya) }}">
@error('biaya_lainnya')<div class="error invalid-feedback">{{ $message }}</div>@enderror
<label class="form-label" for="biaya_penyediaan_air">Biaya Penyediaan/Pengelolaan Air<span class="text-danger">*</span></label>
<div class="input-group">
<span class="input-group-text">Rp</span>
<input
type="text"
class="form-control rupiah-input @error('biaya_penyediaan_air') is-invalid @enderror"
id="biaya-penyediaan-air"
name="biaya_penyediaan_air"
value="{{ old('biaya_penyediaan_air', filled($praktikBudidaya->biaya_penyediaan_air) ? number_format($praktikBudidaya->biaya_penyediaan_air, 0, ',', '.') : '') }}"
placeholder="Contoh: 150.000">
</div>
@error('biaya_penyediaan_air')
<div class="invalid-feedback d-block">{{ $message }}</div>
@enderror
</div>
<div class="col-md-4 mb-4 form-control-validation">
<label class="form-label" for="total-estimasi-biaya-produksi">Total EstimasiBiaya Produksi<span class="text-danger">*</span></label>
<input class="form-control @error('total_estimasi_biaya_produksi') is-invalid @enderror" id="total-estimasi-biaya-produksi" name="total_estimasi_biaya_produksi" value="{{ old('total_estimasi_biaya_produksi', $praktikBudidaya->total_estimasi_biaya_produksi) }}">
@error('total_estimasi_biaya_produksi')<div class="error invalid-feedback">{{ $message }}</div>@enderror
<label class="form-label" for="biaya_lainnya">Biaya Lain-lain<span class="text-danger">*</span></label>
<div class="input-group">
<span class="input-group-text">Rp</span>
<input
type="text"
class="form-control rupiah-input @error('biaya_lainnya') is-invalid @enderror"
id="biaya-lainnya"
name="biaya_lainnya"
value="{{ old('biaya_lainnya', filled($praktikBudidaya->biaya_lainnya) ? number_format($praktikBudidaya->biaya_lainnya, 0, ',', '.') : '') }}"
placeholder="Contoh: 150.000">
</div>
@error('biaya_lainnya')
<div class="invalid-feedback d-block">{{ $message }}</div>
@enderror
</div>
<div class="col-md-4 mb-4 form-control-validation">
<label class="form-label" for="total_estimasi_biaya_produksi">Total Estimasi Biaya Produksi<span class="text-danger">*</span></label>
<div class="input-group">
<span class="input-group-text">Rp</span>
<input
type="text"
class="form-control rupiah-input @error('total_estimasi_biaya_produksi') is-invalid @enderror"
id="total-estimasi-biaya-produksi"
name="total_estimasi_biaya_produksi"
value="{{ old('total_estimasi_biaya_produksi', filled($praktikBudidaya->total_estimasi_biaya_produksi) ? number_format($praktikBudidaya->total_estimasi_biaya_produksi, 0, ',', '.') : '') }}"
placeholder="Contoh: 150.000">
</div>
@error('total_estimasi_biaya_produksi')
<div class="invalid-feedback d-block">{{ $message }}</div>
@enderror
</div>
</div>
<h5 class="pb-4 border-bottom mb-4">Cara Mementukan Kematangan</h5>
@@ -1169,18 +1267,16 @@
</div>
<div class="mt-4 text-end">
<button type="submit" class="btn btn-success">
Simpan Praktik Budidaya
<i class="icon-base ti tabler-check me-1_5 icon-sm"></i>
Simpan
</button>
</div>
</div>
</div>
</form>
<form id="praktikBudidayaForm"
method="POST">
<form id="praktikBudidayaForm" action="{{ route('petani.praktik-budidaya.update', [$petani->id, $praktikBudidaya->id]) }}" method="POST">
@csrf
@method('PUT')
<div class="card mb-6">
<div class="card-body pt-12">
<h5 class="pb-4 border-bottom mb-4">Penanganan Awal Setelah Panen</h5>
@@ -1239,7 +1335,8 @@
</div>
<div class="mt-4 text-end">
<button type="submit" class="btn btn-success">
Simpan Praktik Budidaya
<i class="icon-base ti tabler-check me-1_5 icon-sm"></i>
Simpan
</button>
</div>
</div>
@@ -1296,12 +1393,9 @@
</form>
</div>
</div>
<form id="praktikBudidayaForm"
method="POST">
<form id="praktikBudidayaForm" action="{{ route('petani.praktik-budidaya.update', [$petani->id, $praktikBudidaya->id]) }}" method="POST">
@csrf
@method('PUT')
<div class="card mb-6">
<div class="card-body pt-12">
<h5 class="pb-4 border-bottom mb-4">Kehilangan Hasil Akibat Organisme Pengganggu Tumbuhan (OPT)</h5>
@@ -1363,7 +1457,8 @@
</div>
<div class="mt-4 text-end">
<button type="submit" class="btn btn-success">
Simpan Praktik Budidaya
<i class="icon-base ti tabler-check me-1_5 icon-sm"></i>
Simpan
</button>
</div>
</div>
@@ -1399,38 +1494,95 @@
}
updateSwitchText();
$switch.on('change', updateSwitchText);
});
$('#editPetaniForm').validate({
rules: {
nama: { required: true },
tanggal_lahir: { required: true, date: true },
jenis_kelamin: { required: true },
pendidikan_terakhir: { required: true },
alamat: { required: true },
desa_kelurahan_id: { required: true },
status_perkawinan: { required: true },
},
messages: {
nama: { required: "Nama petani wajib diisi" },
tanggal_lahir: { required: "Tanggal lahir wajib diisi", date: "Format tanggal salah" },
jenis_kelamin: { required: "Jenis kelamin wajib diisi" },
pendidikan_terakhir: { required: "Pendidikan terakhir wajib diisi" },
alamat: { required: "Alamat wajib diisi" },
desa_kelurahan_id: { required: "Desa/Kelurahan wajib diisi" },
status_perkawinan: { required: "Status perkawinan wajib diisi" },
},
errorElement: 'div',
errorPlacement: function (error, element) {
error.addClass('invalid-feedback');
element.closest('.mb-6, .form-control-validation').append(error);
},
highlight: function (element) {
$(element).addClass('is-invalid');
},
unhighlight: function (element) {
$(element).removeClass('is-invalid');
document.addEventListener('DOMContentLoaded', function () {
const rupiahInputs = document.querySelectorAll('.rupiah-input');
rupiahInputs.forEach(function (input) {
input.addEventListener('input', function () {
let value = input.value.replace(/\D/g, '');
if (value === '') {
input.value = '';
return;
}
input.value = new Intl.NumberFormat('id-ID').format(value);
});
});
document.querySelectorAll('form').forEach(function (form) {
form.addEventListener('submit', function () {
form.querySelectorAll('.rupiah-input').forEach(function (input) {
input.value = input.value.replace(/\./g, '');
});
});
});
function toggleInput(trigger) {
const target = document.querySelector(trigger.dataset.target);
if (!target) return;
if (trigger.type === 'checkbox') {
target.disabled = !trigger.checked;
if (!trigger.checked) {
target.value = '';
}
} else if (trigger.type === 'radio') {
const radios = document.querySelectorAll(
`input[name="${trigger.name}"].lainnya-radio`
);
radios.forEach(radio => {
const input = document.querySelector(radio.dataset.target);
if (!input) return;
input.disabled = !radio.checked;
if (!radio.checked) {
input.value = '';
}
});
}
}
document.querySelectorAll('input[type="radio"][data-target]').forEach(function (lainnyaRadio) {
const target = document.querySelector(lainnyaRadio.dataset.target);
function toggleInput() {
target.disabled = !lainnyaRadio.checked;
if (!lainnyaRadio.checked) {
target.value = '';
}
}
document.querySelectorAll(`input[name="${lainnyaRadio.name}"]`).forEach(function (radio) {
radio.addEventListener('change', toggleInput);
});
toggleInput();
});
document.querySelectorAll('.lainnya-checkbox').forEach(function (trigger) {
const target = document.querySelector(trigger.dataset.target);
if (!target) return;
function toggleInput() {
target.disabled = !trigger.checked;
if (!trigger.checked) {
target.value = '';
}
}
trigger.addEventListener('change', toggleInput);
toggleInput();
});
});
</script>