Почему мой флажок всегда одинаковый? - PullRequest
3 голосов
/ 20 июня 2011

У меня есть форма (размещена ниже), и значение, представленное для флажка, не изменяется. Я добавил атрибут ввода к входным данным, чтобы попытаться устранить эту проблему, но теперь вместо отладчика, всегда сообщающего «активный», он сообщает обо всех значениях, заданных как «значение1», независимо от того, установлен флажок или нет.

<form enctype="multipart/form-data" id="f0" method="post" action="">
  <div class="t1">
    <div class="t1_r1">
      <div class="t1_c1"><p class="c"></p></div>
      <div class="t1_c1"><p class="c">Email</p></div>
      <div class="t1_c1"><p class="c">Password</p></div>
      <div class="t1_c1"><p class="c">Keep me logged in<input class="cb" type="checkbox" name="f0a" value="value1" /></p></div>
    </div>
    <div class="t1_r1">
      <div class="t1_c1"><input class="te6" type="text" name="f0b" /></div>
      <div class="t1_c1"><input class="te6" type="password" name="f0c" /></div>
      <div class="t1_c2"><a id="f0d" href ="javascript:void(0)" class='but'>Login</a></div>
    </div>
    <div id=fb1 class="t1_r1">
    </div>
  </div>
</form>

Я поместил элементы в строку текста, используя эту функцию, которая отлично работает для двух других входов. Я обновил его, чтобы отразить ответ. Это еще не было проверено.

function is(a)
{
  var b = '';
  var c = document.forms[a].elements;
  for (i = 0; i < c.length; i++)
  {
    if (c[i].type == 'checkbox' && c[i].checked == false)
    {
      b += c[i].name + "=NULL&";
    }
    else
    { 
      b += c[i].name + "=" + c[i].value + "&";
    }
  }
  b = b.slice(0, -1);
  return b;
}

Ответы [ 2 ]

4 голосов
/ 20 июня 2011

Это потому, что с флажками .value всегда возвращает текст в атрибуте value, который вы установили в HTML. Что вам нужно сделать, это проверить свойство checked, чтобы увидеть, если это правда. Что-то вроде:

function is(a) {
   var b = '';
   var c = document.forms[a].elements;
   for (i = 0; i < c.length; i++) {
      var value = "";
      if (c[i].type == "checkbox") {
         value = (c[i].checked) ? c[i].value : "";
      } else {
         value = c[i].value;
      }
      b += c[i].name + "=" + value + "&";
   }
   b = b.slice(0, -1);
   return b;
}
1 голос
/ 20 июня 2011

Флажки, несмотря на их простой внешний вид, сложнее, чем текст - Отправка значений флажков Ссылка .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...