<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>javascript form validation Arsip - Farhanhidayat.com</title>
	<atom:link href="https://farhanhidayat.com/tag/javascript-form-validation/feed/" rel="self" type="application/rss+xml" />
	<link>https://farhanhidayat.com/tag/javascript-form-validation/</link>
	<description></description>
	<lastBuildDate>Wed, 12 Feb 2025 10:15:53 +0000</lastBuildDate>
	<language>id</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://farhanhidayat.com/wp-content/uploads/2024/11/cropped-Favicon-Farhanhidayat-32x32.png</url>
	<title>javascript form validation Arsip - Farhanhidayat.com</title>
	<link>https://farhanhidayat.com/tag/javascript-form-validation/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>HTML Forms Templates dengan Validasi Form Menggunakan JS</title>
		<link>https://farhanhidayat.com/html-forms-templates-dengan-validasi-form-menggunakan-js/</link>
					<comments>https://farhanhidayat.com/html-forms-templates-dengan-validasi-form-menggunakan-js/#respond</comments>
		
		<dc:creator><![CDATA[Farhan Hidayat]]></dc:creator>
		<pubDate>Wed, 12 Feb 2025 10:15:53 +0000</pubDate>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[form html dengan validasi]]></category>
		<category><![CDATA[form validation javascript]]></category>
		<category><![CDATA[html form validation]]></category>
		<category><![CDATA[html forms templates]]></category>
		<category><![CDATA[javascript form validation]]></category>
		<category><![CDATA[validasi form js]]></category>
		<guid isPermaLink="false">https://farhanhidayat.com/?p=1533</guid>

					<description><![CDATA[<p>Dalam pembuatan website, HTML Forms Templates memainkan peran penting dalam mengumpulkan data pengguna, seperti login, pendaftaran, atau input lainnya. Namun, tanpa validasi, form bisa menjadi celah keamanan dan menyebabkan pengalaman pengguna yang buruk. Oleh karena itu, menggunakan JavaScript untuk validasi form adalah langkah yang sangat penting. Dengan validasi, kita bisa memastikan bahwa pengguna memasukkan data [&#8230;]</p>
<p>Artikel <a href="https://farhanhidayat.com/html-forms-templates-dengan-validasi-form-menggunakan-js/">HTML Forms Templates dengan Validasi Form Menggunakan JS</a> pertama kali tampil pada <a href="https://farhanhidayat.com">Farhanhidayat.com</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p data-start="221" data-end="482">Dalam pembuatan website, <strong data-start="246" data-end="270">HTML Forms Templates</strong> memainkan peran penting dalam mengumpulkan data pengguna, seperti login, pendaftaran, atau input lainnya. Namun, tanpa validasi, form bisa menjadi celah keamanan dan menyebabkan pengalaman pengguna yang buruk.</p>
<p data-start="484" data-end="692">Oleh karena itu, menggunakan <strong data-start="513" data-end="547">JavaScript untuk validasi form</strong> adalah langkah yang sangat penting. Dengan validasi, kita bisa memastikan bahwa pengguna memasukkan data yang benar sebelum dikirim ke server.</p>
<p data-start="694" data-end="854">Pada artikel ini, kita akan membuat <strong data-start="730" data-end="754">HTML Forms Templates</strong> dengan <strong data-start="762" data-end="802">validasi form menggunakan JavaScript</strong> untuk memastikan input aman dan lebih interaktif.</p>
<h2 data-start="861" data-end="898" data-start="861" data-end="898" id="persiapan-koding-prasyarat"><strong data-start="864" data-end="896">Persiapan Koding (Prasyarat)</strong></h2>
<p data-start="899" data-end="939">Sebelum mulai, pastikan kamu memiliki:</p>
<p data-start="941" data-end="1123">Untuk memulai, pastikan kamu memiliki <strong data-start="471" data-end="486">text editor</strong> seperti <strong data-start="495" data-end="517">Visual Studio Code</strong> atau <strong data-start="523" data-end="539">Sublime Text</strong>. Selain itu, gunakan <strong data-start="561" data-end="579">browser modern</strong> seperti <strong data-start="588" data-end="598">Chrome</strong> atau <strong data-start="604" data-end="615">Firefox</strong> untuk melakukan testing. Pemahaman dasar tentang <strong data-start="665" data-end="694">HTML, CSS, dan JavaScript</strong> juga akan sangat membantu dalam mengikuti tutorial ini.</p>
<p data-start="941" data-end="1123">🛠 <strong data-start="115" data-end="223">&#8220;Sebelum mulai ngoding, lihat dulu demo form ini agar kamu punya gambaran jelas tentang hasil akhirnya!&#8221;</strong> 🔥</p>
<p data-start="941" data-end="1123">💡 <em data-start="250" data-end="370">Untuk pengalaman terbaik, disarankan melihat demo ini menggunakan <strong data-start="317" data-end="339">laptop atau tablet</strong> agar tampilan lebih maksimal!</em></p>
<div class="ei-btn-wrap" style="text-align: left;"><a class="ei-btn" href="https://unrivaled-pothos-e7113e.netlify.app/#">Live Preview</a></div>
<h2 data-start="1130" data-end="1167" data-start="1130" data-end="1167" id="membuat-html-forms-templates"><strong data-start="1133" data-end="1165">Membuat HTML Forms Templates</strong></h2>
<p data-start="1168" data-end="1306">Langkah pertama adalah membuat <strong data-start="1199" data-end="1227">struktur dasar HTML form</strong>. Kita akan membuat form sederhana dengan <strong data-start="1269" data-end="1303">input untuk email dan password</strong>.</p>
<h3 data-start="1308" data-end="1338" data-start="1308" data-end="1338" id="kode-html-form-dasar"><strong data-start="1312" data-end="1336">Kode HTML Form Dasar</strong></h3>
<pre class="ei-lighter-js"><code class="language-html">&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head lang="en"&gt;
	&lt;meta charset="utf-8"&gt;
	&lt;meta name="viewport" content="width=device-width, initial-scale=1"&gt;
	&lt;title&gt;Login and Registration From in HTML and CSS&lt;/title&gt;
	&lt;link rel="stylesheet" type="text/css" href="style.css"&gt;
	&lt;link href='https://unpkg.com/boxicons@2.1.4/css/boxicons.min.css' rel='stylesheet'&gt;
&lt;/head&gt;
&lt;body&gt;

	&lt;div class="wrapper"&gt;
		&lt;span class="bg-animate"&gt;&lt;/span&gt;
		&lt;span class="bg-animate2"&gt;&lt;/span&gt;

		&lt;div class="form-box login"&gt;
			&lt;h2 class="animation" style="--i:0; --j:21;"&gt;Login&lt;/h2&gt;
			&lt;form action="#"&gt;
				&lt;div class="input-box animation" style="--i:1; --j:22;"&gt;
					&lt;input type="text" required&gt;
					&lt;label&gt;Username&lt;/label&gt;
					&lt;i class='bx bxs-user'&gt;&lt;/i&gt;
				&lt;/div&gt;

				&lt;div class="input-box animation" style="--i:2; --j:23;"&gt;
					&lt;input type="password" required&gt;
					&lt;label&gt;Password&lt;/label&gt;
					&lt;i class='bx bxs-lock-alt' &gt;&lt;/i&gt;
		&lt;/div&gt;

		&lt;button type="sumbit" class="btn animation" style="--i:3; --j:24;"&gt;Login&lt;/button&gt;
		&lt;div class="logreg-link animation" style="--i:4; --j:25;"&gt;
			&lt;p&gt;Don't have an account? &lt;a href="#" class="register-link"&gt;Sign Up&lt;/a&gt;&lt;/p&gt;
		&lt;/div&gt;

	&lt;/form&gt;
&lt;/div&gt;
          &lt;div class="info-text login"&gt;
			&lt;a href="#" class="animation" style="--i:17; --j:0;"&gt;
				&lt;img src="./images/Logo.png" style="height: 50px;" alt="Landio logo"&gt;
			&lt;/a&gt;
			&lt;p class="animation" style="--i:1; --j:21;"&gt;Tingkatkan wawasan Anda dengan menikmati berbagai artikel dan panduan lengkap yang telah disajikan secara gratis.&lt;/p&gt;
		&lt;/div&gt;


		&lt;div class="form-box register"&gt;
			&lt;h2 class="animation" style="--i:17; --j:0;"&gt;Sign Up&lt;/h2&gt;
			&lt;form action="#"&gt;
				&lt;div class="input-box animation" style="--i:18; --j:1;"&gt;
					&lt;input type="text" required&gt;
					&lt;label&gt;Username&lt;/label&gt;
					&lt;i class='bx bxs-user'&gt;&lt;/i&gt;
				&lt;/div&gt;

				&lt;div class="input-box animation" style="--i:19; --j:2;"&gt;
					&lt;input type="text" required&gt;
					&lt;label&gt;Email&lt;/label&gt;
					&lt;i class='bx bxs-envelope' &gt;&lt;/i&gt;
				&lt;/div&gt;

				&lt;div class="input-box animation" style="--i:20; --j:3;"&gt;
					&lt;input type="password" required&gt;
					&lt;label&gt;Password&lt;/label&gt;
					&lt;i class='bx bxs-lock-alt' &gt;&lt;/i&gt;
		&lt;/div&gt;

		&lt;button type="sumbit" class="btn animation" style="--i:21; --j:4;"&gt;Sign Up&lt;/button&gt;
		&lt;div class="logreg-link animation" style="--i:22; --j:5;"&gt;
			&lt;p&gt;Already have an account? &lt;a href="#" class="login-link"&gt;Login&lt;/a&gt;&lt;/p&gt;
		&lt;/div&gt;

	&lt;/form&gt;
&lt;/div&gt;

&lt;div class="info-text register"&gt;
			&lt;a href="#" class="animation" style="--i:17; --j:0;"&gt;
				&lt;img src="./images/Logo.png" style="height: 50px;" alt="Landio logo"&gt;
			&lt;/a&gt;
			&lt;p class="animation" style="--i:18; --j:1;"&gt;Tingkatkan wawasan Anda dengan menikmati berbagai artikel dan panduan lengkap yang telah disajikan secara gratis.&lt;/p&gt;
		&lt;/div&gt;

	&lt;/div&gt;

	&lt;script src="script.js"&gt;&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;

</code></pre>
<p data-start="2232" data-end="2252">💡 <strong data-start="2235" data-end="2250">Penjelasan:</strong></p>
<ul data-start="2253" data-end="2461">
<li data-start="2253" data-end="2328">Form ini memiliki <strong data-start="2273" data-end="2301">input email dan password</strong> dengan label yang jelas.</li>
<li data-start="2329" data-end="2397">Setiap input memiliki <strong data-start="2353" data-end="2368">placeholder</strong> untuk memudahkan pengguna.</li>
<li data-start="2398" data-end="2461"><strong data-start="2400" data-end="2414">Span error</strong> disiapkan untuk menampilkan pesan kesalahan.</li>
</ul>
<h2 data-start="2468" data-end="2520" data-start="2468" data-end="2520" id="menambahkan-validasi-form-dengan-javascript"><strong data-start="2471" data-end="2518">Menambahkan Validasi Form dengan JavaScript</strong></h2>
<p data-start="2521" data-end="2641">Sekarang kita akan menambahkan <strong data-start="2552" data-end="2575">validasi JavaScript</strong> untuk memastikan data yang dimasukkan sesuai format yang benar.</p>
<h3 data-start="2643" data-end="2688" data-start="2643" data-end="2688" id="kode-javascript-untuk-validasi-form"><strong data-start="2647" data-end="2686">Kode JavaScript untuk Validasi Form</strong></h3>
<pre class="ei-lighter-js"><code class="language-javascript">const wrapper = document.querySelector('.wrapper');
const registerLink = document.querySelector('.register-link');
const loginLink = document.querySelector('.login-link');

registerLink.onclick = () =&gt; {
	wrapper.classList.add('active');
}

 loginLink.onclick = () =&gt; {
	wrapper.classList.remove('active');
}</code></pre>
<p data-start="3624" data-end="3644">💡 <strong data-start="3627" data-end="3642">Penjelasan:</strong></p>
<ul data-start="3645" data-end="3959">
<li data-start="3645" data-end="3740"><strong data-start="3647" data-end="3665">Event Listener</strong> untuk menangkap aksi submit dan mencegah pengiriman jika validasi gagal.</li>
<li data-start="3741" data-end="3819"><strong data-start="3743" data-end="3761">Validasi email</strong> menggunakan <strong data-start="3774" data-end="3783">regex</strong> agar format email sesuai standar.</li>
<li data-start="3820" data-end="3896"><strong data-start="3822" data-end="3843">Validasi password</strong> memastikan minimal <strong data-start="3863" data-end="3877">6 karakter</strong> agar lebih aman.</li>
<li data-start="3897" data-end="3959"><strong data-start="3899" data-end="3918">Pesan kesalahan</strong> ditampilkan jika ada input yang salah.</li>
</ul>
<h2 data-start="3966" data-end="4001" data-start="3966" data-end="4001" id="meningkatkan-ux-dengan-css"><strong data-start="3969" data-end="3999">Meningkatkan UX dengan CSS</strong></h2>
<p data-start="4002" data-end="4120">Agar tampilan lebih menarik, kita bisa menambahkan CSS sederhana untuk <strong data-start="4073" data-end="4100">memberi feedback visual</strong> saat input salah.</p>
<h3 data-start="4122" data-end="4140" data-start="4122" data-end="4140" id="kode-css"><strong data-start="4126" data-end="4138">Kode CSS</strong></h3>
<pre class="ei-lighter-js"><code class="language-css">@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800;900&amp;display=swap');

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	font-family: 'poppins', sans-serif;
}

body {
	display: flex;
	justify-content: center;
	align-items: center;
	min-height: 100vh;
	background: #2bbab3;
}

.wrapper {
	position: relative;
	width: 750px;
	height: 450px;
	background: transparent;
	border: 2px solid #ffffff;
	box-shadow: 0 0 25px #ffffff;
	overflow: hidden;
}

.wrapper .form-box {
	position: absolute;
	top: 0;
	width: 50%;
	height: 100%;
	
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.wrapper .form-box.login {
	left: 0;
	padding: 0 60px 0 40px;
	
}

.wrapper .form-box.login .animation {
	transform: translateX(0);
	opacity: 1;
	filter: blur(0);
	transition: .7s ease;
	transition-delay: calc(.1s * var(--j));
}


.wrapper.active .form-box.login .animation {
	transform: translateX(-120%);
	opacity: 1;
	filter: blur(10px);
	transition-delay: calc(.1s * var(--i));
}

.wrapper .form-box.register {
	right: 0;
	padding: 0 40px 0 60px;
	
}

.wrapper .form-box.register .animation {
	transform: translateX(120%);
	opacity: 0;
	filter: blur(10px);
	transition: .7s ease;
	transition-delay: calc(.1s * var(--j));
}

.wrapper.active .form-box.register .animation {
	transform: translateX(0);
	opacity: 1;
	filter: blur(0);
	transition-delay: calc(.1s * var(--i));
}

.form-box h2 {
	font-size: 32px;
	color: #fff;
	text-align: center;
}

.form-box .input-box {
	position: relative;
	width: 100%;
	height: 50px;
	
	margin: 25px 0;
}

.input-box input {
	width: 100%;
	height: 100%;
	background: transparent;
	border: none;
	outline: none;
	border-bottom: 2px solid #fff;
	padding-right: 23px;
	font-size: 16px;
	color: #fff;
	font-weight: 500;
	transition: .5s;
}

.input-box input:focus,
.input-box input:valid {
	border-bottom-color: #000;
}

.input-box label {
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	font-size: 16px;
	color: #fff;
	pointer-events: none;
	transition: .5s;
}

.input-box input:focus~label,
.input-box input:valid~label {
	top: -5px;
	color: #000;
}

.input-box i {
	position: absolute;
	top: 50%;
	right: 0;
	transform: translateY(-50%);
	font-size: 18px;
	color: #fff;
	transition: .5s;
}

.input-box input:focus~i,
.input-box input:valid~i {
	color: #000;
}

.btn  {
	position: relative;
	width: 100%;
	height: 45px;
	background: transparent;
	border: 2px solid #ffffff;
	outline: none;
	border-radius: 40px;
	cursor: pointer;
	font-size: 16px;
	color: #fff;
	font-weight: 600;
	z-index: 1;
	overflow: hidden;
}

.btn::before {
	content: '';
	position: absolute;
	top: -100%;
	left: 0;
	width: 100%;
	height: 300%;
	background: linear-gradient(#081b29, #2bbab3, #081b29, #2bbab3);
	z-index: -1;
	transition: .5s;
}


.btn:hover::before {
	top: 0;
}

.form-box .logreg-link {
	font-size: 14.5px;
	color: #fff;
	text-align: center;
	margin: 20px 0 10px;
}

.logreg-link p a {
	color: #000;
	text-decoration: none;
	font-weight: 600;
}

.logreg-link p a:hover {
	text-decoration: underline;
}

.wrapper .info-text {
	position: absolute;
	top: 0;
	width: 50%;
	height: 100%;
	
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.wrapper .info-text.login {
	right: 0;
	text-align: right;
	padding: 0 40px 60px 150px;
	
}

.wrapper .info-text.login .animation {
	transform: translateX(0);
	opacity: 1;
	filter: blur(0);
	transition: .7s ease;
	transition-delay: calc(.1s * var(--j));
}


.wrapper.active .info-text.login .animation {
	transform: translateX(120%);
	opacity: 1;
	filter: blur(10px);
	transition-delay: calc(.1s * var(--i));
}

.wrapper .info-text.register {
	left: 0;
	text-align: left;
	padding: 0 150px 60px 40px;
	pointer-events: none;
}

.wrapper .info-text.register .animation {
	transform: translateX(-120%);
	opacity: 0;
	filter: blur(10px);
	transition: .7s ease;
	transition-delay: calc(.1s * var(--j));
}

.wrapper.active .info-text.register .animation {
	transform: translateX(0);
	opacity: 1;
	filter: blur(0);
	transition-delay: calc(.1s * var(--i));
}

.info-text h2 {
	font-size: 36px;
	color: #fff;
	line-height: 1.3;
	text-transform: uppercase;
}

.info-text p {
	font-size: 16px;
	color: #fff;
}

.wrapper .bg-animate {
	position: absolute;
	top: -4px;
	right: 0;
	width: 850px;
	height: 600px;
	background: #353744;
	border-bottom: 3px solid #ffffff;
	transform: rotate(10deg) skewY(40deg);
	transform-origin: bottom right;
	transition: 1.5s ease;
	transition-delay: 1.6s;
}

.wrapper.active .bg-animate {
    transform: rotate(0) skewY(0);
    transition-delay:.5s;
}

.wrapper .bg-animate2 {
	position: absolute;
	top: 100%;
	left: 250px;
	width: 850px;
	height: 700px;
	background: #2bbab3;
	border-top: 3px solid #ffffff;
	transform: rotate(0) skewY(0);
	transform-origin: bottom left;
	transition: 1.5s ease;
	transition-delay: .5s;
}

.wrapper.active .bg-animate2 {
    transform: rotate(-11deg) skewY(-41deg);
    transition-delay: 1.2s;
}</code></pre>
<h2 data-start="5299" data-end="5335" data-start="5299" data-end="5335" id="kesimpulan"><strong data-start="5302" data-end="5333">Kesimpulan </strong></h2>
<p data-start="5336" data-end="5560">Menggunakan <strong data-start="1099" data-end="1123">HTML Forms Templates</strong> dapat membantu dalam pengumpulan data pengguna secara efisien. Dengan menambahkan <strong data-start="1206" data-end="1229">validasi JavaScript</strong>, keamanan dan pengalaman pengguna menjadi lebih optimal. Agar tampilan lebih menarik dan profesional, <strong data-start="1332" data-end="1339">CSS</strong> juga dapat digunakan untuk memberikan efek visual yang lebih baik.</p>
<p data-start="5562" data-end="5688">💡 <strong data-start="5565" data-end="5591">Sekarang giliran kamu!</strong> Coba buat form sendiri dan eksplorasi lebih lanjut. Jika ada pertanyaan, tulis di komentar! 🚀</p>
<p>Artikel <a href="https://farhanhidayat.com/html-forms-templates-dengan-validasi-form-menggunakan-js/">HTML Forms Templates dengan Validasi Form Menggunakan JS</a> pertama kali tampil pada <a href="https://farhanhidayat.com">Farhanhidayat.com</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://farhanhidayat.com/html-forms-templates-dengan-validasi-form-menggunakan-js/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
