å¿…è¦ãªã‚‰ã©ã†ãžã€‚
デモ
jQueryã§ãƒ•ォームã®å€¤ã‚’å–å¾—ã™ã‚‹æ–¹æ³•ã‚’ã¾ã¨ã‚ – jsdo.it – share JavaScript, HTML5 and CSS
共通:è¦ç´ ã®æŽ¢ã—æ–¹
inputè¦ç´ ãªã‚“ã‹ã«id振ã£ã¡ã‚ƒã†ã®ãŒä¸€ç•ªãªã‚“ã ã‘ã©ã€å±žæ€§ã‚»ãƒ¬ã‚¯ã‚¿ãƒ¼ã‚’使ã†ã¨æ¥½ãªå ´åˆãŒã‚りã¾ã™ã€‚ã¤ã¾ã‚Š[name=xxx]ã§æ¤œç´¢ã™ã‚‹ã‚„り方。
<form id="my-form"> <input type="text" name="my-text" value="This is text." /> </form>
// id="my-form" ã®ä¸ã‹ã‚‰ name="my-text" ãªã‚‚ã®ã‚’検索
var $input = $('#my-form [name=my-text]');
[name=xxx]ã ã‘ã ã¨ãƒ•ォームãŒè¤‡æ•°ã‚ã‚‹ã¨ãã«å…¨éƒ¨å–ã£ã¦ãã¡ã‚ƒã†ã®ã§ã€ãƒ•ã‚©ãƒ¼ãƒ ã®æ–¹ã«ã¯idを振ã£ã¦ã€ãã®ä¸ã‹ã‚‰æŽ¢ã™ã‚ˆã†ã«ã—ã¾ã—ãŸã€‚
テã‚スト
ã“れãŒåŸºæœ¬ãƒ‘ターン。 .val()ã§å¾—られã¾ã™ã€‚
<form id="my-form"> <input type="text" name="my-text" value="This is text." /> </form>
var val = $('#my-form [name=my-text]').val();
console.log(val); // => "This is text."
数値
HTML5ã‹ã‚‰typeã«numberãŒè¿½åŠ ã•れã¾ã—ãŸã€‚ã¾ã‚今ã¾ã§ã‚‚textã§ã‚„ã£ã¦ããŸã¨æ€ã†ã‚“ã§ã™ãŒã€ã¨ã‚‚ã‹ã .val()ã™ã‚‹ã¨stringåž‹ã§è¿”ã£ã¦ãã¾ã™ã€‚数値ã®åŠ ç®—2+3ã¯5ã«ãªã‚Šã¾ã™ãŒã€æ–‡å—列"2"+"3"ã¯"23"ã«ãªã£ã¡ã‚ƒã„ã¾ã™ã‹ã‚‰ãã€‚è¦æ³¨æ„。
ã§ã€å–ã£ã¦ããŸæ–‡å—列をNumber()ã‚ãŸã‚Šã§æ•°å€¤ã«å¤‰æ›ã—ã¦ã‚„れã°å¤§ä¸ˆå¤«ã§ã™ã€‚
<form id="my-form"> <input type="number" name="my-number" value="123" /> </form>
var valText = $('#my-form [name=my-number]').val();
var val = Number(valText) || 0; // NaNã®ã¨ã0ã«ã™ã‚‹
console.log(val); // => 123
「フォームã®å€¤ã®å–り方ã€ã¨ã¯ã¡ã‚‡ã£ã¨é•ã†ã‚“ã ã‘ã©ã€ã¾ã‚覚ãˆã¦ãŠã„ã¦ãã ã•ã„。ã‚ã¨æ–‡å—列ã‹ã‚‰æ•°å€¤ã¸ã®å¤‰æ›ã¯ä½•パターンã‹ã‚りã¾ã™ã®ã§ã€èˆˆå‘³ã‚れã°èª¿ã¹ã¦ã¿ã¦ãã ã•ã„ãªã€‚
ラジオボタン
値をå–ã‚‹ã¨ã„ã†å‹•作自体ã¯å˜ç´”ã« .val()ã§æ¸ˆã‚€ã‚“ã ã‘ã©ã€ç¾å®Ÿçš„ã«ã‚„りãŸã„ã®ã¯é¸æŠžã•れã¦ã„る値をå–ã‚‹ã€ã¨ã„ã†ã®ã§ã™ã‚ˆã。
ã¨ã„ã†ã‚ã‘ã§ã€nameå±žæ€§ã§æ¤œç´¢ã—ãŸå¾Œã«:checkedã§çµžã‚Šè¾¼ã‚€ã¨ã„ã†ã²ã¨æ‰‹é–“ã‚’åŠ ãˆã¾ã™ã€‚
<form id="my-form"> <input type="radio" name="my-radio" value="A" /> <input type="radio" name="my-radio" value="B" checked /> <input type="radio" name="my-radio" value="C" /> </form>
var val = $('#my-form [name=my-radio]:checked').val();
console.log(val); // => "B"
ã‚ã€ã‚‚ã¡ã‚ん利用者ãŒç”»é¢ã§ã½ã¡ã½ã¡ã—ã¦é¸æŠžå¤‰ãˆãŸã‚‰ã€ãã£ã¡ãŒå¾—られã¾ã™ã‚ˆã€‚
ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹
ã“れãŒé¢å€’ãã•ã„。è¦ç´ ã®æŽ¢ã—æ–¹ã¯ãƒ©ã‚¸ã‚ªãƒœã‚¿ãƒ³ã¨ä¸€ç·’ãªã‚“ã ã‘れã©ã€ã“ã£ã¡ã¯è¤‡æ•°é¸æŠžã•れã¦ã„ã‚‹å ´åˆãŒã‚る。jQueryã¯å€¤ã®å–å¾—ã¯å…ˆé ã®ã‚‚ã®ã ã‘ãŒå¯¾è±¡ã«ãªã‚‹ã®ãŒæ™®é€šã§ã€ .val()ã‚‚ãã†ã€‚
全部å–ã‚‹ãŸã‚ã«ã€ .map()ã§ãƒ«ãƒ¼ãƒ—ã—ã¾ã™ã€‚
<form id="my-form"> <input type="checkbox" name="my-checkbox" value="A" /> <input type="checkbox" name="my-checkbox" value="B" checked /> <input type="checkbox" name="my-checkbox" value="C" checked /> </form>
var $checked = $('#my-form [name=my-checkbox]:checked');
var valList = $checked.map(function(index, el) { return $(this).val(); });
console.log(valList); // => ["B", "C"]
複数ã‚ã‚‹ã‹ã‚‚ãªã®ã§ã€å€¤ã‚‚é…列ã«è©°ã‚ã¦ã¾ã™ã€‚
ã‚〠.map()ã®ä½¿ã„æ–¹ã¯è§£èª¬ã—ãªã„ã®ã§ã€ã‚ã‹ã‚‰ãªã„äººã¯æŽ¢ã—ã¦ã¿ã¦ãã ã•ã„ã。
んーã€ã‚‚ã£ã¨è‰¯ã„やり方ãŒã‚ã‚‹ã‹ã‚‚ã—れãªã„。
ã‚»ãƒ¬ã‚¯ãƒˆãƒœãƒƒã‚¯ã‚¹ï¼ˆå˜æ•°ï¼‰
HTMLã¯ãƒ©ã‚¸ã‚ªãƒœã‚¿ãƒ³ã«ä¼¼ã¦ã‚‹ã‘ã©ã€é¸æŠžã•れã¦ã„ã‚‹optionè¦ç´ を探ã™å¿…è¦ã¯ãªãã¦ã€å˜ã«selectè¦ç´ ã®å€¤ã‚’å–れã°OKã§ã™ã€‚
<form id="my-form">
<select name="my-select">
<option value="A">This is A</option>
<option value="B" selected>This is B</option>
<option value="C">This is C</option>
</select>
</form>
var val = $('#my-form [name=my-select]').val();
console.log(val); // => "B"
表示文å—åˆ—ãŒæ¬²ã—ã„ã¨ãã¯
値"B"ã˜ã‚ƒãªãã¦ç”»é¢ã«è¡¨ç¤ºã•れã¦ã„ã‚‹ã‚„ã¤"This is B"ãŒæ¬²ã—ã„ã¨ãã¯ã€optionè¦ç´ ã‹ã‚‰æŽ¢ã™äº‹ã«ãªã‚Šã¾ã™ã€‚
ã‚㨠.val()ã˜ã‚ƒãªã㦠.text()ã。
var text = $('#my-form [name=my-select] option:selected').text();
console.log(text); // => "This is B"
フォームé€ä¿¡ã—ã¦ã‚‚サーãƒãƒ¼ã«é€ã‚‰ã‚Œã‚‹ã‚‚ã®ã§ã¯ãªã„ã‘れã©ã€é¸æŠžã‚’ç”»é¢ã«åæ˜ ã•ã›ãŸã„å ´åˆã«ä½¿ãˆã‚‹ã‹ãªã¨ã€‚
セレクトボックス(複数)
å–り方ã¯å˜æ•°ã®ã¨ãã¨ä¸€ç·’ã§ã™ã€‚ãªã‚“ã¨ãªã‚“ã¨ã€ãƒ©ã‚¸ã‚ªãƒœã‚¿ãƒ³ã¿ãŸã„ã«ãƒ«ãƒ¼ãƒ—ã§äº‘々ãªã‚“ã¦ä¸è¦ï¼ã€€ãã®ã‚ãŸã‚Šã¯jQueryãŒã‚„ã£ã¦ãれã¾ã™ã€‚便利ã ããƒã€‚
multiple属性ã®ã‚ã‚‹selectè¦ç´ ã§ .val()ã™ã‚‹ã¨ã€é¸æŠžå€¤ãŒé…列ã§å¾—られã¾ã™ã€‚
<form id="my-form">
<select name="my-multi-select" size="3" multiple>
<option value="A">This is A</option>
<option value="B" selected>This is B</option>
<option value="C" selected>This is C</option>
</select>
</form>
var val = $('#my-form [name=my-multi-select]').val();
console.log(val); // => ["B", "C"]
ã¡ãªã¿ã«é¸æŠžã•れã¦ã‚‹æ•°ã«ã‚ˆã‚‰ãšã«é…列ã«ãªã‚‹ã®ã§ã€ã²ã¨ã¤ã®ã¨ãã‚‚ä½•ã‚‚é¸æŠžã•れã¦ãªã„ã¨ãã‚‚ã€é…列ã§ã™ã€‚
ファイル
ã“れã¯ç„¡ç†ï¼
昔㯠.val()ã§é¸æŠžã•れã¦ã„るファイルã®ãƒ‘スã¨ã‹å–れãŸã‚“ã ã‘ã©ã€ä»Šã¯ã‚»ã‚ュリティã®ã‚¢ãƒ¬ã‚½ãƒ¬ã§é§„ç›®ã§ã™ã€‚jQueryã˜ã‚ƒãªãã¦JavaScriptã®æ–¹ã®å•題ã。
ã©ã†ã—ã¦ã‚‚å¿…è¦ãªã‚‰HTML5ã®File APIã‚ãŸã‚Šã‚’使ã„ã¾ã™ã€‚本稿ã§ã¯è§¦ã‚Œã¾ã›ã‚“。
全部ã¾ã¨ã‚ã¦
フォームã®å€¤ã‚’ã¾ã¨ã‚ã¦å…¨éƒ¨å–ã£ã¦ãる事もå¯èƒ½ã§ã™ã€‚
formè¦ç´ ã«å¯¾ã—㦠.serialize()ã§é€ä¿¡ã™ã‚‹ã®ã¨åŒã˜æ–‡å—列(URLã®”?”以é™ã®éƒ¨åˆ†ï¼‰ãŒã€ .serializeArray()ã§ãれをé…列ã«åˆ†è§£ã—ãŸã‚‚ã®ã‚’得られã¾ã™ã€‚
<form id="my-form">
<input type="text" name="my-text" value="This is text." />
<select name="my-multi-select" size="3" multiple>
<option value="A">This is A</option>
<option value="B" selected>This is B</option>
<option value="C" selected>This is C</option>
</select>
</form>
var $form = $('#my-form');
var query = $form.serialize();
var param = $form.serializeArray();
console.log(query); // => "my-text=This+is+text.&my-multi-select=B&my-multi-select=C"
console.log(param); // => [{name:"my-text",value:"This is text."},(çœç•¥ï¼‰]
ã¾ã¨ã‚ã¦æ¤œè¨¼ã™ã‚‹ã¨ãã¨ã‹ã€å€‹åˆ¥ã«å–ã£ã¦ãるよりã“ã£ã¡ã®æ–¹ãŒæ¥½ã‹ã‚‚ã—れãªã„。
.serializeArray()ã¯é…列ã˜ã‚ƒãªãã¦nameã‚’ã‚ーã«ã—ãŸé€£æƒ³é…列ã ã¨æ‰±ã„ãŒæ¥½ã ãªãƒ¼ã£ã¦æ€ã„ã¾ã—ãŸã€‚複数ã‚ã‚‹ã‚‚ã®ã¯valueã®æ–¹ã‚’é…列ã«ã™ã‚‹æ„Ÿã˜ã§ã€‚ã¾ã‚ã„ã„ã‘ã©ã€‚
ãŠã—ã¾ã„。