خصوصیت های جدید در HTML5
خصوصیت های جدید در HTML5
چندین خصوصیت جدید در HTML5 برای تگ های <form> و <input> اضافه شده است.
خصوصیت های جدید برای تگ <form>
- autocomplete
- novalidate
خصوصیت های جدید برای تگ <input>
- autocomplete
- autofocus
- form
- formaction
- formenctype
- formmethod
- formnovalidate
- formtarget
- height and width
- list
- min and max
- multiple
- pattern
- placeholder
- required
- step
خصوصیت autocomplete در <form> / <input>
این خصوصیت مشخص می کند که مقادیر یک فرم یا یک فیلد متنی بصورت اتوماتیک پر شود یا نه.
زمانی که کاربر شروع به تایپ در فیلدهای autocomplete می کند، مرورگر گزینه هایی را که قبلاً کاربر وارد کرده است نمایش می دهد.
نکته: این امکان وجود دارد که خصوصیت autocomplete برای form فعال و برای یک فیلد بخصوص غیرفعال باشد و یا برعکس.
توجه: خصوصیت autocomplete برای تگ <form> و تگ <input>ی که از انواع زیر باشد کار می کند:
text, search, url, tel, email, password, datepickers, range, color
مثال (خصوصیت های جدید در HTML5)
First name:<input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br>
E-mail: <input type="email" name="email" autocomplete="off"><br>
<input type="submit">
</form>
نکته: در بعضی مرورگرها باید خاصیت Autocomplete را فعال کنید تا این مثال کار کند.
خصوصیت novalidate در <form>
خصوصیت novalidate یک خصوصیت boolean است.
این خصوصیت نشان می دهد که این فرم برای ارسال به سرور نیاز به اعتبارسنجی ندارد.
اگر این خصوصیت برای فرم مشخص شده باشد هیچ یک از فیلدهای آن فرم از نظر اعتبارسنجی بررسی نمی شود.
مثال (خصوصیت های جدید در HTML5)
E-mail: <input type="email" name="user_email">
<input type="submit">
</form>
خصوصیت autofocus در <input>
خصوصیت autofocus یک خصوصیت boolean است.
این خصوصیت باعث می شود که بعد از لود شدن صفحه، مکان نما بصورت پیشفرض روی آن فیلد قرار گیرد.
نکته: خصوصیت autofocus برای تمام انواع فیلدهای ورودی کار می کند.
مثال (خصوصیت های جدید در HTML5)
خصوصیت form در <input>
این خصوصیت فرم یا فرم هایی که فیلد مورد نظر به آن ها تعلق دارد را مشخص می کند.
نکته: خصوصیت form برای تمام انواع فیلدهای ورودی کار می کند و برای اتصال یک فیلد به چند فرم باید با space بین id فرم ها فاصله بگذارید.
این خصوصیت باید به id فرم مورد نظرتان اشاره کند.
مثال (خصوصیت های جدید در HTML5)
First name: <input type="text" name="fname"><br>
<input type="submit" value="Submit">
</form>
Last name: <input type="text" name="lname" form="form1">
خصوصیت formaction در <input>
خصوصیت formaction، آدرس فایلی که مقادیر کنترل های ورودی بعد از ارسال در آن پردازش می شوند را مشخص می کند.
خصوصیت formaction، خصوصیت action عنصر <form>را لغو می کند و با مقدار مورد نظر تغییر می دهد.
نکته: خصوصیت formaction با انواع ورودی submit و image استفاده می شود.
نکته: از این صفات می توان برای ساخت دکمه های submit متفاوت که کارهای متفاوتی انجام می دهند استفاده کرد.
مثال (خصوصیت های جدید در HTML5)
یک فرم HTML با دو دکمه submit، و دو action متفاوت:
First name: <input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br>
<input type="submit" value="Submit"><br>
<input type="submit" formaction="demo_admin.php"
value="Submit as admin">
</form>
خصوصیت formenctype در <input>
خصوصیت formenctype، چگونگی رمز کردن داده های فرم، هنگام ارسال را مشخص می کند. (تنها زمانی که خصوصیت method عنصر <form> با مقدار "post" تنظیم شده باشد)
خصوصیت formenctype، خصوصیت enctype عنصر <form> را لغو می کند و با مقدار مورد نظر تغییر می دهد.
نکته: خصوصیت formenctype با انواع ورودی submit و image استفاده می شود.
مثال (خصوصیت های جدید در HTML5)
در دکمه اول، داده ها براساس enctype پیشفرض فرم ارسال می شوند، و در دکمه دوم داده ها بر اساس "multipart/form-data" رمزگذاری و ارسال می شوند:
First name: <input type="text" name="fname"><br>
<input type="submit" value="Submit">
<input type="submit" formenctype="multipart/form-data"
value="Submit as Multipart/form-data">
</form>
خصوصیت formmethod در <input>
خصوصیت formmethod، مشخص می کند که ارسال اطلاعات از فرم HTML به سرور به چه شکل باشد، اگر آنرا با مقدار "get" پر کنیم، اطلاعات فرم در آدرس صفحه قرار می گیرد و ارسال می شود، و اگر آنرا با مقدار "post" تنظیم کنیم، اطلاعات به صورت یک آرایه ارسال می شود.(به صورت پیشفرض get در نظر گرفته می شود)
خصوصیت formmethod، خصوصیت method عنصر <form> را لغو می کند و با مقدار مورد نظر تغییر می دهد.
نکته: خصوصیت formmethod با انواع ورودی submit و image استفاده می شود.
مثال (خصوصیت های جدید در HTML5)
First name: <input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br>
<input type="submit" value="Submit">
<input type="submit" formmethod="post" formaction="demo_post.php"
value="Submit using POST">
</form>
خصوصیت formnovalidate در <input>
خصوصیت formnovalidate یک خصوصیت boolean است.
این خصوصیت نشان می دهد که فیلدهای ورودی برای ارسال به سرور نیاز به اعتبارسنجی ندارد.
خصوصیت formnovalidate، خصوصیت novalidate عنصر <form> را لغو می کند و با مقدار مورد نظر تغییر می دهد.
نکته: خصوصیت formnovalidate با نوع ورودی submit استفاده می شود.
مثال (خصوصیت های جدید در HTML5)
یک فرم با دو دکمه (با و بدون اعتبار سنجی):
E-mail: <input type="email" name="userid"><br>
<input type="submit" value="Submit"><br>
<input type="submit" formnovalidate value="Submit without validation">
</form>
خصوصیت formtarget در <input>
خصوصیت formtarget نشان می دهد، پاسخی که از سرور دریافت شده است کجا نمایش داده شود و می تواند شامل: صفحه جاری، صفحه جدید، صفحه پدر، یك فریم خاص و ... باشد.
خصوصیت formtarget، خصوصیت target عنصر <form> را لغو می کند و با مقدار مورد نظر تغییر می دهد.
نکته: خصوصیت formtarget با انواع ورودی submit و image استفاده می شود.
مثال (خصوصیت های جدید در HTML5)
یک فرم با دو دکمه submit و targetهای متفاوت:
First name: <input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br>
<input type="submit" value="Submit as normal">
<input type="submit" formtarget="_blank"
value="Submit to a new window">
</form>
خصوصیت های height و width در <input>
خصوصیت های height و width، ارتفاع و عرض برای نوع ورودی image را مشخص می کند.
توجه: همانطور که مشخص است این خصوصیت فقط برای نوع ورودی image کار می کند.
نکته: همیشه خصوصیت عرض و طول یک عکس را مشخص کنید. اگر این خصوصیت ها تنظیم شوند، زمانی که صفحه در حال لود شدن است، مکان مورد نیاز برای عکس در بین دیگر عناصر صفحه رزرو شده است. بنابراین طرح صفحه در حال لود با طرح کاملاً لود شده ی صفحه، تفاوتی نخواهد داشت. اما اگر این خصوصیات را تنظیم نکنید، مرورگر نمی تواند اندازه عکس را تشخیص دهد و اگر تصویری در بین متن باشد. جای آن تا لود کامل تصویر خالی خواهد ماند.
مثال (خصوصیت های جدید در HTML5)
تعریف یک عکس بعنوان submit، با خصوصیت های height و width:
خصوصیت list در <input>
این خصوصیت یک datalist را به یک فیلد متنی متصل می کند.
زمانی که کاربر داده وارد می کند، یک لیست کشویی ظاهر می شود و می تواند از گزینه های پیشنهاد داده شده یکی را انتخاب نماید.
برای اتصال یک <datalist> به یک فیلد ورودی متنی، باید خاصیت list فیلد متنی را با id عنصر <datalist> تنظیم نمایید.
مثال (خصوصیت های جدید در HTML5)
<datalist id="browsers">
<option value="Internet Explorer">
<option value="Firefox">
<option value="Chrome">
<option value="Opera">
<option value="Safari">
</datalist>
خصوصیت های min و max در <input>
خصوصیت های min و max، حداقل و حداکثر مقدار برای یک عنصر <input> را مشخص می کند.
توجه: این خصوصیت ها فقط برای انواع ورودی زیر استفاده می شود:
number, range, date, datetime, datetime-local, month, time ,week
مثال (خصوصیت های جدید در HTML5)
<input type="date" name="bday" max="1979-12-31">
Enter a date after 2000-01-01:
<input type="date" name="bday" min="2000-01-02">
Quantity (between 1 and 5):
<input type="number" name="quantity" min="1" max="5">
خصوصیت multiple در <input>
خصوصیت multiple یک خصوصیت boolean است.
این خصوصیت نشان میدهد که مقادیر متعددی را می توان برای عنصر <input> تنظیم نمود. مقادیر را با کاما (,) از هم جدا کنید.
توجه: این خصوصیت فقط برای انواع ورودی email و file استفاده می شود.
مثال (خصوصیت های جدید در HTML5)
خصوصیت pattern در <input>
این خصوصیت الگویی برای بررسی اعتبار یک فیلد ورودی مشخص می کند. این الگو یک یک عبارت منظم (regular expression) است که می توانید در اینترنت، عبارات منظم و نحوه ایجاد آن ها را بیابید.
توجه: این خصوصیت فقط برای انواع ورودی زیر استفاده می شود:
text, search, url, tel, email, password
نکته: می توان از خصوصیت title برای توضیح درباره الگو، جهت کمک به فهم کاربر استفاده نمود.
اگر مایلید درباره عبارات منظم در JavaScript بیشتر بدانید به مطلب JS Validation مراجعه کنید. همچنین سایت http://html5pattern.com نیز برای بررسی بیشتر بسیار مناسب است.
قطعا با عبارت منظم آشنا هستید، در زیر مفهوم برخی از علائم عبارات منظم آورده شده است:
- ^ : نشانه شروع می باشد. به طور مثال دستور bcd^ به معنی هر عبارتی است که با bcd شروع شود.
- $ : نشانه پایان می باشد. به طور مثال دستور $bcd به معنی هر عبارتی است که در انتها به bcd ختم شود.
- + : نشانه تکرار است و اگر پشت عبارتی قرار بگیرید باید حداقل یکبار تکرار شود.
- * : همانند + می باشد با این تفاوت که آن عبارت می تواند تکراری نداشته باشد.
- ? : اگر پشت عبارتی قرار بگیرد یعنی اینکه آن عبارت باید صفر یا یک بار تکرار شود.
- () : برای قسمت بندی عبارات به زیر عبارات و اولویت بندی نیز می باشد.
- [] : لیستی از کاراکترها که می خواهیم تطبیق دهیم در این دو کروشه قرار می گیرد.
- [ ^] : لیستی از کاراکترهائی که نمی خواهیم تطبیق داده شوند از این عبارت استفاده می کنیم.
- d\ : نشانه ارقام می باشد یعنی وقتی این عبارت بیاید منظور یکی از ارقام است.
- D\ : نشانه هر کاراکتری غیر از رقم می باشد.
- w\ : نشانه حرف یا عدد می باشد و کاراکترهای خاص نیست و معادل [a-zA-Z_0-9] است.
- W\ : نشانه کاراکترهای خاص می باشد و عدد یا حروف یا space نیست.
- s\ : نشانه کاراکتر space می باشد.
- S\ : نشان هر کاراکتری غیر از space می باشد.
- {} : مشخص کننده تعداد تکرارا می باشد و اگر داخل آن یک عدد نوشته شود یعنی اینکه عبارت قبل از آن دقیقا باید به تعداد آن عدد تکرارا شود ولی اگر دو عدد نوشته شود عبارت قبل از آن باید تکراری بین آن دو عدد باشد.
- | : بمعنی یا است. بعنوان مثال a|b یعنی یا a یا b
- - : بمعنی تا است. بعنوان مثال a-z یعنی از a تا z
- . : می تواند هر کاراکتری باشد.
مثال (خصوصیت های جدید در HTML5)
یک فیلد متنی که می تواند فقط شامل 3 حرف باشد و بیشتر از آن را نمی پذیرد. (3 حرف و نه اعداد یا کاراکترهای خاص)
خصوصیت placeholder در <input>
این خصوصیت یک عبارت را به صورت کم رنگ در داخل فیلد ورودی می نویسد که با فوکوس روی آن فیلد از بین می رود و فیلد خالی می شود.
توجه: این خصوصیت فقط برای انواع ورودی زیر استفاده می شود:
text, search, url, tel, email, password
مثال (خصوصیت های جدید در HTML5)
خصوصیت required در <input>
خصوصیت required یک خصوصیت boolean است.
این خصوصیت مشخص می کند که فیلد ورودی قبل از ارسال به سرور باید حتما پر شده باشد.
توجه: این خصوصیت فقط برای انواع ورودی زیر استفاده می شود:
text, search, url, tel, email, password, date pickers, number, checkbox, radio, file
مثال (خصوصیت های جدید در HTML5)
خصوصیت step در <input>
خصوصیت step، فاصله اعداد مجاز برای یک عنصر <input> را مشخص می کند.
مثال: اگر "3"=step باشد، اعداد مجاز می تواند ... 6 ، 3 ، 0 ، 3- ، 6- ... باشد.
نکته: خصوصیت step را می توان همراه با خصوصیت های min و max برای مشخص کردن یک محدوده ای از اعداد مجاز استفاده نمود.
توجه: این خصوصیت فقط برای انواع ورودی زیر استفاده می شود:
number, range, date, datetime, datetime-local, month, time ,week
- نوشته شده توسط امیر پهلوان صادق
- بازدید: 30297
دیدگاهها
با عرض سلام و خسته نباشید
ببخشید اگه امکانش هست یه راهنمایی بکنید بهم یعنی خیلی خیلی برام مهمه
میخواستم بدونم که چطور میشه با یه form یا input کاری کنیم که وقتی کسی نام کاربری و پسورد و وارد میکنن اگه اشتباه بود بهشون اعلان خطا رو بده مثل required که اگه پر نکنه خطا میده
خواهشا اگه امکانش هست جواب بدید و اگه میشه جواب و به ایمیلمم بفرستید یعنی خیلی خیلی برام مهمه
سلام. ممنون.
در رابطه با اعتبار سنجی فرم، مقاله ی زیر را لطفا مطالعه نمایید:
www.beyamooz.com/php/231-php-form/953-%D8%A7%D8%B9%D8%AA%D8%A8%D8%A7%D8%B1%D8%B3%D9%86%D8%AC%DB%8C-%D9%81%D8%B1%D9%85-%D8%AF%D8%B1-php
سلام خسته نباشید ببخشید نمیتونید خاصیت pattern رو با یه مثال واقعی مث ایمیل و یا پسورد توضیح بدید آخه کاربردی یخوایم انجام بدیم خیلی مفید نیست
سلام، در مثال زیر، کاربر تنها مجاز به وارد کردن سه کاراکتر انگلیسی است و در غیر اینصورت با پیغام خطا مواجه خواهد شد:
www.beyamooz.com/try_it_yourself/tryit.php?filename=tryhtml5_input_pattern01
همچنین در پروژه رزرو هتل از ویژگی مذکور بخوبی استفاده شده است:
beyamooz.com/demo/beyamooz-hotel/rezerve.php
لینک خرید پروژه بالا:
beyamooz.com/product/php-hotel/%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D8%B1%D8%B2%D8%B1%D9%88-%D9%87%D8%AA%D9%84-%D8%AF%D8%B1-php
مرسی فقط نیازی نیست واسه پیغام صادره اسکریپت بنویسیم فک کنم مقدار title کافی باشه
www.w3schools.com/tags/tryit.asp?filename=tryhtml5_input_pattern
اگر می خواهید که متن خطا، کاملا بصورت فارسی باشد، باید کد جاوااسکریبت انتهای مثال بالا آورده شود.
سلام چرا نمیشه بیشتر از یک عکس در خصوصیت multiple انتخاب کرد؟هر دفعه دکمه انتخاب رو می زنم فقط یه عکس جدید انتخاب می شود!یا اینکه من معنی خصوصیت رو بد متوجه شدم!
با سلام.
نباید مشکلی وجود داشته باشه. وقتی خصوصیت multiple رو بذارید، امکان انتخاب چند فایل به شما داده میشه. شما میتونید چند فایل رو انتخاب کنید یا نه؟؟؟
نه نمیشه بیشتر از یکی انتخاب کرد حتی تو مثال آموزشی http://beyamooz.com/try_it_yourself/tryit.php?filename=tryhtml5_input_multiple
سلام . باید برای انتخاب چند عکس، کلید Ctrl رو نگه دارید تا بتونید چند عکس رو انتخاب کنید.
ممنون الان درست شد.تعداد فایل هارو نشون میده
اینکارو انجام دادم اما در قسمت choose فقط اسم یکی از عکس هارو نشون میده!
در قسمت pattern میشه به جای نوشتن حروف [a-z] بگیم فقط حروف فارسی را وارد کنند؟
مشکلی نیست، ولی اگه بتونید از کاراکتر معادل اون در سیستم یونیکد استفاده کنید بهتره. بعضی از زبانها در کار با کاراکترهای فارسی مشکل دارند، اگر قبل و بعد از آنها از کوتیشن یا دابلکوتیشن استفاده نشه.
سلام خسته نباشید
در مثال خصوصیت formmethod در آدرس www.beyamooz.com/try_it_yourself/tryit.php?filename=tryhtml5_input_formmethod در صورت استفاده از دکمه Submit using POST با خطای 404 موجه میشویم؟!
با سلام و خسته نباشید.
در کد مذکور در خصوصیات formaction دکمهی Submit using POST به جای فایل demo_post.asp از فایل demo_post.php استفاده کنید. یعنی اگر پسوند فایل رو به php تغییر بدید، کد درست کار خواهد کرد.
یه اشتباه کوچولوی تایپی در هنگام کدنویسی هست! از این بابت عذرخواهی میکنیم.
2تا سوال داشتم ممنون اگه جواب بدید
سوال 1: وقتی input از نوع image هست در زمان کلیک روی ان یک border ابی رنگ دور image ظاهر میشه چه طوری میشه حذفش کرد؟ زمانی که داخل فیلد هم کلیک میکنیم همین border ظاهر میشه راهی برای حذفش هست؟
سوال2 : خصوصیت placeholder قابل استایل دهی نیست؟ یعنی نوشته کم رنگی که به طور پیش فرض در فیلد قرار میگیره نمیشه رنگش رو تغییر داد؟
1- این حالت بیشتر در مرورگر chrome اتفاق می افتد. کد زیر رو امتحان کنید:a:active {
outline: none;
}
a:focus {
-moz-outline-st yle: none;
}
a, input {
outline-color: invert;
outline-style: none;
outline-width: medium;
}
2- متن Placeholder، بصورت خاکستری روشن نمایش داده می شود، برای استایل دهی آن بصورت زیر عمل نمایید: ::-webkit-input -placeholder {
color: red;
}
:-moz-placeholder { /* Firefox 18- */
color: red;
}
::-moz-placeholder { /* Firefox 19+ */
color: red;
}
:-ms-input-placeholder {
color: red;
}
یا می تونید این رو امتحان کنید:input[placeholder], [placeholder], *[placeholder] {
color: blue;
}
هیچکدوم کار نکرد!!
برای استایل دهی به placeholder، خودتان امتحان کنید زیر را بررسی کنید:
www.beyamooz.com/try_it_yourself/tryit.php?filename=tryhtml5_input_placeholder01
مرسی از راهنماییتون
یعنی واسه عوض کردن رنگ placeholder اینهمه کد باید نوشت همون خاکستری باشه بهتره!!!
فقط این border آبی رنگ موقع کلیک کردن ظاهر میشه اگه میشد حذف شه خیلی عالی بود
من برای حذف border ابی رنگ خودم جوابشو پیدا کردم کافیه در ابتدای فایل css این کد رو بنویسیم
:focus{outline:0;}
سلام
لطفا در مورد استایل دهی به فیلدها توضیح بدید مثلا برای یک فیلد از نوع search چطور میتونیم بهش طول و عرض یا border بدیم ممنون
سلام، مانند دیگر عناصر عمل می کنیم. ممکن است بخواهید بصورت درون تگی (inline) استایل دهی کنید که در این صورت از ویژگی style استفاده می شود.<input type="email" name="email" autocomplete="o ff" style="background-color:#ccc">
عالی بود
متشکرم
با سلام وخسته نباشید.در خصوصیت pattern آیا امکانش هست عبارت "please match the requested format." رو حذف کرد؟ینی در پیغامی که ظاهر میشه فقط title خودمون بیاد؟لطفا جواب بدین خیلی لازم دارمش.
سلام، با استفاده از متد setCustomValidi ty می توانید متن پیش فرض را تغییر دهید. در اینجا یک مثال ساده از نحوه ی استفاده از آن آمده است:
www.beyamooz.com/try_it_yourself/tryit.php?filename=tryhtml5_input_pattern01