4つのテキストボックスの入力を取得し、ラジオのチェックボックスオプションに基づいて表示しようとしています。私はここでそれについてもっと議論しました:
複数のラジオボタンを備えたフォームの最も効率的なコーディングスタイル
次のコード行で問題が発生しています。
//Gets value from input boxes into array
var values = $('.names').map(function() {
if(this.value != '') return this.value;
}).get();
//Check radio boxes
var selectedValue = $('input[name=friend]:checked').val();
//Determines array length
var length = values.length;
//if only one name
if (length==1) {
switch(selectedValue) {
case "na":
values = values;
break;
case "van":
values = values.join("och van");
break;
case "vanner":
values = values.join("och vanner");
break;
}
}
alert(selectedValue);
変数「values」に値「ochvan」または「ochvanner」は追加されません。独立して実行すると、すべてが機能します。つまり、「values」は名前を返し、「selectedValue」はチェックされたラジオボックスを返し、「length」は配列内の要素の数を返します。しかし、Ifステートメントを介してそれを結合しようとすると、大文字と小文字を切り替えても機能しません。
問題のHTMLはここにあります:
<div id="inputboxes">
<input type="text" name="name1" id="names1" class="names" value="" placeholder="1) Name Here . . .">
<input type="text" name="name2" id="names2" class="names" value="" placeholder="2) Name Here . . .">
<input type="text" name="name3" id="names3" class="names" value="" placeholder="3) Name Here . . .">
<input type="text" name="name4" id="names4" class="names" value="" placeholder="4) Name Here . . .">
</div>
</li>
</ul>
<ul>
<li>
<div id="radios1">
<input type="radio" id="na" value="na" name="friend" class="{src:'img/n.people.png',checked:'img/n.people.c.png',hover:'/img/unchecked.png'}" checked="checked"/>
<input type="radio" id="van" value="van" name="friend" class="{src:'img/o.person.png',checked:'img/o.person.c.png',hover:'/img/unchecked.png'}" />
<input type="radio" id="vanner" value="vanner" name="friend" class="{src:'img/m.people.png',checked:'img/m.people.c.png',hover:'/img/unchecked.png'}" />
</div>