ÙØ±Ù
âÙØ§ Ù control elementÙØ§ Ù
ث٠<input> Ø¯Ø§Ø±Ø§Û prperty Ù eventÙØ§Û ÙÛÚÙâØ§Û ÙØ³ØªÙد.
ÙÙØªÛ ÙØ±Ù âÙØ§ را ÛØ§Ø¯ Ø¨Ú¯ÛØ±ÛÙ Ø Ú©Ø§Ø± کرد٠با Ø¢ÙâÙØ§ Ø¨Ø³ÛØ§Ø± Ø±Ø§ØØªâتر Ù ÛâØ´ÙØ¯.
Navigation: form and elements
ÙØ±Ù
âÙØ§Û document از Ø§Ø¹Ø¶Ø§Û Ù
جÙ
ÙØ¹ÙâÛ ÙÛÚÙâÛ document.forms ÙØ³ØªÙد.
اÛÙ Ø¨Ù Ø§ØµØ·ÙØ§Ø ÛÚ© Ù Ø¬Ù ÙØ¹ÙâÛ ÙØ§Ù âÚ¯Ø°Ø§Ø±Û Ø´Ø¯Ù Ø§Ø³Øª: ÙÙ ÙØ§Ù âÚ¯Ø°Ø§Ø±Û Ø´Ø¯Ù Ù ÙÙ ØªØ±ØªÛØ¨âدار شد٠است. Ø¨Ø±Ø§Û Ø¯Ø³ØªØ±Ø³Û Ø¨Ù ÙØ±Ù Ù ÛâØªÙØ§ÙÛÙ Ù٠از ÙØ§Ù Ø¢Ù Ù Ù٠از ش٠ارÙâÛ Ø¢Ù Ø¯Ø± document Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ .
document.forms.my; // "my" = ÙØ±Ù
با ÙØ§Ù
document.forms[0]; // document اÙÙÛÙ ÙØ±Ù
در
ÙÙØªÛ ÛÚ© ÙØ±Ù
دارÛÙ
Øâ در اÛÙ ØµÙØ±Øª ÙØ± elementØ§Û Ø¯Ø± Ù
جÙ
ÙØ¹ÙâÛ ÙØ§Ù
âÚ¯Ø°Ø§Ø±Û Ø´Ø¯Ù Ø¨Ø§ form.elements ÙØ§Ø¨Ù Ø¯Ø³ØªØ±Ø³Û Ø§Ø³Øª.
Ø¨Ø±Ø§Û Ù Ø«Ø§Ù:
<form name="my">
<input name="one" value="1">
<input name="two" value="2">
</form>
<script>
// form Ú¯Ø±ÙØªÙ
let form = document.forms.my; // <form name="my"> element
// element Ú¯Ø±ÙØªÙ
let elem = form.elements.one; // <input name="one"> element
alert(elem.value); // 1
</script>
٠٠ک٠است elementÙØ§Û Ø²ÛØ§Ø¯Û با ÙØ§Ù ÛÚ©Ø³Ø§Ù ÙØ¬Ùد Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÙØ¯. اÛ٠در Ù ÙØ±Ø¯ radio buttonÙØ§ Ù checkboxÙØ§ ٠ع٠Ù٠است.
در Ø¢Ù ØµÙØ±ØªØ form.elements[name] ÛÚ© Ù
جÙ
ÙØ¹ÙâØ§Ø³Øª. Ø¨Ø±Ø§Û Ù
ثاÙ:â
<form>
<input type="radio" name="age" value="10">
<input type="radio" name="age" value="20">
</form>
<script>
let form = document.forms[0];
let ageElems = form.elements.age;
alert(ageElems[0]); // [object HTMLInputElement]
</script>
اÛÙ navigation propertyÙØ§ ب٠tag structure ÙØ§Ø¨Ø³ØªÚ¯Û ÙØ¯Ø§Ø±Ùد. تÙ
اÙ
control elementÙØ§Ø ÙØ±ÙÛ ÙØ¯Ø§Ø±Ø¯ ÚÙØ¯Ø± در ÙØ±Ù
عÙ
ÛÙ Ø¨Ø§Ø´ÙØ¯Ø در form.elements ÙØ§Ø¨Ù Ø¯Ø³ØªØ±Ø³Û ÙØ³ØªÙد.
.را درÙÙ Ø®ÙØ¯ ÙÙØ±Ø³Øª Ù
ÛâÚ©ÙÙØ¯ form controls Ø¯Ø§Ø±ÙØ¯ Ú©Ù elements property در Ø®ÙØ¯Ø´ داشت٠باشد. Ø¢ÙâÙØ§ ÙÙ
ÚÙÛÙ <fieldset> elements ÛÚ© ÙØ±Ù
Ù
Ù
ک٠است ÛÚ© ÛØ§ ÚÙØ¯
For instance:
<body>
<form id="form">
<fieldset name="userFields">
<legend>info</legend>
<input name="login" type="text">
</fieldset>
</form>
<script>
alert(form.elements.login); // <input name="login">
let fieldset = form.elements.userFields;
alert(fieldset); // HTMLFieldSetElement
// .Ø¯Ø±ÛØ§Ùت Ú©ÙÛÙ
fieldset Ù ÙÙ
از form را با ÙØ§Ù
ÙÙ
از input Ù
ا Ù
ÛâØªÙØ§ÙÛÙ
alert(fieldset.elements.login == form.elements.login); // true
</script>
</body>
form.name.Ø¯Ø³ØªØ±Ø³Û Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛÙ
element ب٠form[index/name] Ú©ÙØªØ§ÙâØªØ± ÙÙ
ÙØ¬Ùد دارد: Ù
ا Ù
ÛâØªÙØ§ÙÛÙ
با notation ÛÚ©
ب٠عبارت دÛÚ¯Ø±Ø Ø¨Ù Ø¬Ø§Û form.elements.login Ù
ÛâØªÙØ§ÙÛÙ
بÙÙÛØ³ÛÙ
form.login.
Ø¢Ù ÙÙ
کار Ù
ÛâÚ©ÙØ¯Ø ÙÙÛ ÛÚ© Ù
Ø´Ú©Ù Ø¬Ø²Ø¦Û ÙØ¬Ùد دارد: اگر ب٠ÛÚ© element Ø¯Ø³ØªØ±Ø³Û Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛÙ
Ø Ù Ø¨Ø¹Ø¯ name آ٠را تغÛÛØ± بدÙÛÙ
Ø Ø¢Ùگا٠آ٠ÙÙÙØ² با ÙØ§Ù
ÙØ¯ÛÙ
Û ÙØ§Ø¨Ù Ø¯Ø³ØªØ±Ø³Û Ø§Ø³Øª (ÙÙ
ÚÙÛ٠با ÙØ§Ù
Ø¬Ø¯ÛØ¯)
آساÙâØªØ± است ک٠آ٠را در ÛÚ© ٠ثا٠ببÛÙÛÙ :
<form id="form">
<input name="login">
</form>
<script>
alert(form.elements.login == form.login); // true, ÙÙ
ا٠<input>
form.login.name = "username"; // را تغÛÛØ± Ù
ÛâØ¯ÙØ¯ input ÙØ§Ù
// Ù
ÛâÚ©ÙØ¯ update را nameØ forms.elements
alert(form.elements.login); // undefined
alert(form.elements.username); // input
// را Ù
جاز Ù
ÛâÚ©ÙØ¯: ÙÙ
Ø¬Ø¯ÛØ¯ Ù ÙÙ
ÙØ¯ÛÙ
Û name ÙØ±Ù
ÙØ± دÙ
alert(form.username == form.login); // true
</script>
با اÛÙ ØØ§ÙØ Ø§Û٠٠ع٠ÙÙØ§ ÛÚ© Ù Ø´Ú©Ù ÙÛØ³ØªØ ÚÙ٠٠ا Ø¨Ù ÙØ¯Ø±Øª ÙØ§Ù elementÙØ§Û ÙØ±Ù را تغÛÛØ± Ù ÛâØ¯ÙÛÙ .
Backreference: element.form
Ø¨Ø±Ø§Û ÙØ± elementØ§ÛØ ÙØ±Ù
ب٠عÙÙØ§Ù element.form ÙØ§Ø¨Ù Ø¯Ø³ØªØ±Ø³Û Ø§Ø³Øª. Ø¨ÙØ§Ø¨Ø±Ø§ÛÙ ÛÚ© ÙØ±Ù
ب٠ÙÙ
ÙâÛ elementÙØ§ ارجاع Ù
ÛâØ¯ÙØ¯ Ù elementÙØ§ ÙÙ
Ø¨Ù ÙØ±Ù
ارجاع Ù
ÛâØ¯ÙÙØ¯.
اÛÙ Ù٠تصÙÛØ±Ø´ است:
Ø¨Ø±Ø§Û Ù Ø«Ø§Ù:
<form id="form">
<input type="text" name="login">
</form>
<script>
// form -> element
let login = form.login;
// element -> form
alert(login.form); // HTMLFormElement
</script>
Form elements
.ØµØØ¨Øª Ú©ÙÛÙ form controls Ø¨ÛØ§ÛÛØ¯ دربارÙâÛ
input and textarea
.ب٠Ù
ÙØ¯Ø§Ø± Ø¢ÙâÙØ§ Ø¯Ø³ØªØ±Ø³Û Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛÙ
radio buttons Ù checkboxes Ø¨Ø±Ø§Û input.value (string) ÛØ§ input.checked (boolean) Ù
ا Ù
ÛâØªÙØ§ÙÛÙ
با
٠ث٠اÛÙ:
input.value = "Ø¬Ø¯ÛØ¯ value";
textarea.value = "Ø¬Ø¯ÛØ¯ text";
input.checked = true; // radio button ÛØ§ checkbox Ø¨Ø±Ø§Û ÛÚ©
textarea.value, ÙÙ textarea.innerHTML.Ø¨Ù Ø¢Ù Ø¯Ø³ØªØ±Ø³Û Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛÙ
textarea.innerHTML ت٠در ت٠ØÙظ Ù
ÛâÚ©ÙØ¯ اÙ
ا Ù
ا ÙØ±Ú¯Ø² ÙØ¨Ø§Ûد از طرÛÙ HTML Ù
ÙØ¯Ø§Ø± Ø®ÙØ¯ را ب٠عÙÙØ§Ù <textarea>...</textarea> ÙØ·Ùا ØªÙØ¬Ù Ú©ÙÛØ¯ ک٠با اÛÙÚ©Ù
.ک٠در ابتدا در ØµÙØÙ Ø¨ÙØ¯Ù را Ø°Ø®ÛØ±Ù Ù ÛâÚ©ÙØ¯Ø ÙÙ Ù ÙØ¯Ø§Ø± ÙØ¹ÙÛ Ø±Ø§ HTML Ø¢Ù ÙÙØ·
select Ù option
:Ù
ÙÙ
دارد property س٠<select> element ÛÚ©
select.optionsâ<option>subelements Ù Ø¬Ù ÙØ¹ÙâØ§Û Ø§Ø²select.valueâ Ø¯Ø± ØØ§Ù ØØ§Ø¶Ø± Ø§ÙØªØ®Ø§Ø¨ شدÙ<option>Ù ÙØ¯Ø§Ø±select.selectedIndexâ Ø¯Ø± ØØ§Ù ØØ§Ø¶Ø± Ø§ÙØªØ®Ø§Ø¨ شدÙ<option>تعداد
:عرض٠Ù
ÛâÚ©ÙÙØ¯ <select> کرد٠ÛÚ© Ù
ÙØ¯Ø§Ø± Ø¨Ø±Ø§Û set Ø¢ÙâÙØ§ س٠را٠Ù
ختÙ٠براÛ
- .ÙØ±Ø§Ø± Ù
ÛâØ¯ÙØ¯
trueآ٠را برابرoption.selectedÙ Ù ÙØ¯Ø§Ø± (Ø¨Ø±Ø§Û Ù Ø«Ø§Ùselect.options) Ù ØªÙØ§Ø¸Ø± را Ù¾ÛØ¯Ø§ Ù ÛâÚ©ÙØ¯<option>Ø¹ÙØµØ± - .را برابر Ø¢Ù Ù
ÙØ¯Ø§Ø± Ø¬Ø¯ÛØ¯ ÙØ±Ø§Ø± Ù
ÛâØ¯ÙØ¯
select.valueاگر ÛÚ© Ù ÙØ¯Ø§Ø± Ø¬Ø¯ÛØ¯ را بداÙÛÙ : - .را برابر آ٠عدد ÙØ±Ø§Ø± Ù
ÛâØ¯ÙØ¯
select.selectedIndexØ¬Ø¯ÛØ¯ را بداÙÛÙ : Ù ÙØ¯Ø§Ø± option number اگر
:اÛÙØ¬Ø§ ٠ثاÙÛ Ø§Ø² ÙØ± س٠٠تد Ù ÛâØ¨ÛÙÛÙ
<select id="select">
<option value="apple">Ø³ÛØ¨</option>
<option value="pear">Ú¯ÙØ§Ø¨Û</option>
<option value="banana">Ù
ÙØ²</option>
</select>
<script>
// تÙ
اÙ
س٠خط کار ÛکساÙÛ Ø§ÙØ¬Ø§Ù
Ù
ÛâØ¯ÙÙØ¯
select.options[2].selected = true;
select.selectedIndex = 2;
select.value = 'banana';
// .option از ØµÙØ± Ø´Ø±ÙØ¹ Ù
ÛâØ´ÙÙØ¯Ø پس Ø§ÙØ¯Ûس Ø¯Ù ÛØ¹ÙÛ Ø³ÙÙ
ÛÙ options :ÙØ·Ùا Ø¯ÙØª Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛØ¯
</script>
.Ø¨Ù ÙØ¯Ø±Øª Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâØ´ÙØ¯ attribute Ø¨Ù Ø·ÙØ± ÙÙ
زÙ
Ø§Ù Ø§ÙØªØ®Ø§Ø¨ Ø´ÙÙØ¯. با اÛÙ ØØ§ÙØ Ø§ÛÙ option Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´Ø¯Ø Ø§Ø¬Ø§Ø²Ù Ù
ÛâØ¯ÙØ¯ Ú©Ù ÚÙØ¯ attribute ÚÙØ¯ <select> ÙØ§Û دÛگر اگرcontrol برعکس Ø¨ÛØ´ØªØ±
.ØØ°Ù/ب٠آ٠اضاÙÙ Ú©ÙÛØ¯ <option> subelements را از selected property Ø¨Ø±Ø§Û ÚÙØ¯ÛÙ Ù
ÙØ¯Ø§Ø± Ø§ÙØªØ®Ø§Ø¨ Ø´Ø¯ÙØ از Ø±ÙØ´ اÙÙ Ø¨Ø±Ø§Û ØªÙØ¸ÛÙ
Ù
ÙØ§Ø¯Ûر Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯
:Ù ÙØ¯Ø§Ø± Ø§ÙØªØ®Ø§Ø¨âشد٠را ب٠دست Ø¢ÙØ±ÛÙ Ømulti-select اÛÙØ¬Ø§ ÛÚ© ٠ثا٠دارÛ٠از اÛÙÚ©Ù ÚÚ¯ÙÙ٠از ÛÚ©
<select id="select" multiple>
<option value="blues" selected>Blues</option>
<option value="rock" selected>Rock</option>
<option value="classic">Classic</option>
</select>
<script>
// multi-select Ú¯Ø±ÙØªÙ تÙ
اÙ
Ù
ÙØ§Ø¯Ûر Ø§ÙØªØ®Ø§Ø¨âشد٠از
let selected = Array.from(select.options)
.filter(option => option.selected)
.map(option => option.value);
alert(selected); // blues,rock
</script>
.Ù
ÙØ¬Ùد است https://html.spec.whatwg.org/multipage/forms.html#the-select-element در Ù
شخصات <select> element Ù
شخصات کاÙ
Ù
Ø¬Ø¯ÛØ¯ Option
:ÙØ¬Ùد دارد
option = new Option(text, value, defaultSelected, selected);
:را Ø¨Ù ØµÙØ±Øª Ø¯Ø³ØªÛ Ù
ÙØ¯Ø§Ø±Ø¯ÙÛ Ú©ÙÛÙ
. با اÛÙ ØØ§ÙØâ Ù
Ù
ک٠است Ú©ÙØªØ§ÙâØªØ± باشد پس اÛÙØ¬Ø§ پاراÙ
ØªØ±ÙØ§ ÙØ¬Ùد Ø¯Ø§Ø±ÙØ¯ attributes Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ
Ù document.createElement('option') Ø§Ø®ØªÛØ§Ø±Û Ø§Ø³ØªØ Ù
ا Ù
ÛâØªÙØ§ÙÛÙ
از syntax اÛÙ
textâ option ٠ت٠درÙÙ,valueâ option Ù ÙØ¯Ø§Ø±,defaultSelectedâ Ø§Ûجاد Ù ÛâØ´ÙØ¯selectedHTML-attribute باشدtrueاگرselectedâ Ø§Ùتخاب Ù ÛâØ´ÙØ¯ option باشدtrueاگر
.Ø§ÙØªØ®Ø§Ø¨ شد٠است ÛØ§ ÙÙ option Ù
شخص Ù
ÛâÚ©ÙØ¯ Ú©Ù Ø¢ÛØ§ selected در ØØ§ÙÛ Ú©Ù (آ٠را Ø¨Ú¯ÛØ±ÛÙ
option.getAttribute('selected') Ú©Ù Ù
ا Ù
ÛâØªÙØ§ÙÛÙ
با) Ù
ÛâÚ©ÙØ¯ set را HTML-attribute Ù
ÙØ¯Ø§Ø± defaultSelected در اÛ٠است Ú©Ù selected Ù defaultSelected ØªÙØ§Ùت بÛÙ
(false ÛØ§ Ø¨Ù Ø³Ø§Ø¯Ú¯Û ØØ°Ù Ø´ÙÙØ¯Ø Ù
ÙØ¯Ø§Ø± Ù¾ÛØ´âÙØ±Ø¶ ÙØ± دÙ) .Ø¨Ø§Ø´ÙØ¯ false ÛØ§ true در عÙ
Ù Ø¨Ø§ÛØ¯ Ù
عÙ
ÙÙØ§ ÙØ± د٠Ù
ÙØ¯Ø§Ø±
Ø¨Ø±Ø§Û Ù Ø«Ø§ÙØ اÛÙØ¬Ø§ بک âunselectedâ option دارÛÙ :
let option = new Option("Text", "value");
// Ø§ÛØ¬Ø§Ø¯ Ù
ÛâÚ©ÙØ¯ <option value="value">Text</option>
شد٠select ا٠ا option Ù٠اÙ
let option = new Option("Text", "value", true, true);
:Ø¯Ø§Ø±ÙØ¯ property ÛÚ© Ø³Ø±Û Option elements
option.selected- Ø§ÙØªØ®Ø§Ø¨ شد٠است ÛØ§ ÙÙ option
option.index
Ø®ÙØ¯Ø´ <select> در بÛ٠بÙÛÙ option عدد :
option.text
(ØªÙØ³Ø· Ø¨Ø§Ø²Ø¯ÛØ¯Ú©ÙÙØ¯Ù Ø¯ÛØ¯Ù Ù
ÛâØ´ÙØ¯) option Ù
ØØªÙØ§Û Ù
تÙÛ :
Ù ÙØ§Ø¨Ø¹
- Ø¬Ø²Ø¦ÛØ§Øª: https://html.spec.whatwg.org/multipage/forms.html.
Ø®ÙØ§ØµÙ
Form navigation:
document.forms
.ÙØ§Ø¨Ù Ø¯Ø³ØªØ±Ø³Û Ø§Ø³Øª document.forms[name/index] ÛÚ© ÙØ±Ù
با :
form.elements
.کار Ù
ÛâÚ©ÙÙØ¯ <fieldset> ÙÙ
ÚÙÛ٠با elements property Ø§Ø³ØªÙØ§Ø¯Ù کرد. form[name/index] ÙØ§Ø¨Ù Ø¯Ø³ØªØ±Ø³Û ÙØ³ØªÙØ¯Ø ÛØ§ ÙÙØ· Ù
ÛâØªÙØ§Ù از form.elements[name/index] با Form elements Ø¹ÙØ§ØµØ± :
element.form
.Ø¨Ù ÙØ±Ù
Ø®ÙØ¯ ارجاع Ù
ÛâØ¯ÙÙØ¯ form property Ø¹ÙØ§ØµØ± در :
(.Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯ Ú©Ù Ù
شخص Ù
ÛâÚ©ÙØ¯ ÛÚ© Ù
ÙØ¯Ø§Ø± Ø§ÙØªØ®Ø§Ø¨ شد٠است ÛØ§ ÙÙ input.checked از radio buttons Ù checkboxes براÛ) Ù â¦ ÙØ§Ø¨Ù Ø¯Ø³ØªØ±Ø³Û Ø§Ø³Øª. input.valueØ textarea.valueØ select.value با value Ù
ÙØ¯Ø§Ø±
.ب٠دست Ø¢ÙØ±Ø¯ options collection select.options ÛØ§ از طرÛÙ select.selectedIndex ÙÙ
ÚÙÛÙ Ù
ÛâØªÙØ§Ù Ù
ÙØ¯Ø§Ø± را با Ø§ÙØ¯Ûس <select> براÛ
اÛÙâÙØ§ ٠باÙÛ Ø´Ø±ÙØ¹ کار با ÙØ±Ù âÙØ§ ÙØ³ØªÙد. ٠ا ٠ثاÙâÙØ§Û Ø¨ÛØ´ØªØ±Û را در Ø¢Ù ÙØ²Ø´ Ø®ÙØ§ÙÛÙ Ø¯ÛØ¯.
.را Ù¾ÙØ´Ø´ Ø®ÙØ§ÙÛÙ
داد Ú©Ù Ù
Ù
ک٠است در ÙØ± Ø¹ÙØµØ±Û Ø§ØªÙØ§Ù بÛÙØªÙØ¯Ø Ø§Ù
ا Ø¨ÛØ´ØªØ± در ÙØ±Ù
âÙØ§ Ù
Ø¯ÛØ±Ûت Ù
ÛâØ´ÙÙØ¯ blur Ù focus در ÙØµÙ Ø¨Ø¹Ø¯Û Ù
ا
ÙØ¸Ø±Ø§Øª
<code>Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯Ø Ø¨Ø±Ø§Û ÚÙØ¯Û٠خط â کد را درÙ٠تگ<pre>ÙØ±Ø§Ø± دÙÛØ¯Ø Ø¨Ø±Ø§Û Ø¨ÛØ´ از د٠خط کد â Ø§Ø² ÛÚ© جعبÙÙ Ø´ÙÛ Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯. (plnkrØ jsbinØ codepenâ¦)