0

私のJavaScript:

<script type="text/javascript">
function getVal(chk, adto)
{
  var ad="";
  if (chk.checked) 
  {
    ad=document.getElementById(adto).value + chk.value;
    document.getElementById(adto).value = ad;
  }
  else  
  {
  }
}
</script>

最初のブロックは希望どおりに機能していますが、ユーザーがチェックボックスをオフにすると、テキストボックスから値が削除されます。

以下はHTMLコードです。

<body>
<input type="checkbox" name="chk[]" value="0" id="chk0" onclick="getVal(this, 'inp0')">value 0<br>
<input type="checkbox" name="chk[]" value="1" id="chk1" onclick="getVal(this, 'inp0')">value 1<br>
<input type="checkbox" name="chk[]" value="2" id="chk2" onclick="getVal(this, 'inp0')">value 2<br>
<input type="checkbox" name="chk[]" value="3" id="chk3" onclick="getVal(this, 'inp0')">value 3<br>
<input type="checkbox" name="chk[]" value="4" id="chk4" onclick="getVal(this, 'inp0')">value 4<br>
<input type="checkbox" name="chk[]" value="5" id="chk5" onclick="getVal(this, 'inp0')">value 5<br>
<br>
<input type="text" name="inp" id="inp0" readonly><br>

チェックされていないオプションをテキストボックスから削除する方法を教えてください。

4

1 に答える 1

1

デモ

同じ名前のすべてのチェックボックスが同じフィールドに追加されると仮定します。そうでない場合は、さらにコードが必要になります。

また、ボックスはフォームタグでラップされていると仮定しました

function getVal(chk, adto) {
  var ad=[];
  var checks = chk.form[chk.name];
  for (i=0;i<checks.length;i++) {
    if (checks[i].checked) {
      ad.push(checks[i].value);
    }
  }
  document.getElementById(adto).value = (ad.length>0)?ad.join(" "):"";

}
于 2013-01-28T08:56:33.860 に答える