Использование флажков с Jquery AJAX - PullRequest
2 голосов
/ 14 января 2010

Я использую JQuery для некоторых функций AJAX. Но когда передается значение флажка, значение отображается независимо от того, установлен флажок или нет. Вот мой код:

$(document).ready(function(){ 
  $('#submitform').click(function(){
    $.ajax({
      type: "POST",
      url: "abs_newabs_check.asp",
      data: { allday: $("#allday").val() },
      success: callback
    });
  });
});

function callback(data, status)
{
    $("#ajaxdiv").html(data);
}

Что я делаю не так? Любая помощь приветствуется. Спасибо.

Ответы [ 2 ]

7 голосов
/ 14 января 2010

value вашего флажка, к которому обращается val(), всегда будет соответствовать свойству value ввода. Который всегда установлен, независимо от состояния флажка. То, что вы хотите проверить, это checked свойство:

{ allday: $('#allday').is(':checked') }

или если вы действительно хотите передать значение, когда оно проверено:

{ allday: $('#allday').is(':checked') ? $('#allday').val() : '' }
2 голосов
/ 14 января 2010

Флажки раздражают маленьких пижонов. Вы должны на самом деле проверить, установлен ли атрибут «флажок» на флажок, и если это так, только тогда вы хотите применить значение.

Так что, если у вас есть флажок

<input type="checkbox" name="sports" value="soccer"  />

вы хотите проверить, установлен ли для него установленный атрибут

<input type="checkbox" checked="yes" name="sports" value="soccer"  />

Значение всегда будет одинаковым, это состояние, которое меняется

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