Флажок всегда включен

Hy!

Когда Uploadify отправляет файл на действие, мне нужно знать, проверен ли флажок или нет, поэтому я сделал:

    $('#uploaded').uploadify({
        'uploader': '/uploadify.swf',
        'cancelImg': '/cancel.png',
        'script': '/Interaction/Upload',
        'multi': true,
        'auto': false,
        'method': 'post',
        'scriptData': {'Checkbox': $('#checkbox').val()},
    });

Но я всегда получаю "на" значение. Неважно, если проверено или нет.

кто-нибудь может помочь? Tks.


ОБНОВИТЬ:

Я понял, что uploadify получает флажок при загрузке страницы. Это означает, что если я изменю флажок (или любой другой тип ввода), uploadify получит начальное значение, в данном случае "checkbox = false".

Как я могу отправить форму с uploadify?

Tks.

9 ответов

Пытаться $('#checkbox').is(':checked')

Значение флажка всегда "включено". HTML-форма отправляет значение на сервер, только если флажок установлен. Если флажок не установлен, то параметр запроса будет отсутствовать. Эта семантика, по-видимому, сводит к минимуму различия между флажками и переключателями.

Форма HTML реализует следующую семантику:

if ($('#mycheckbox').is(':checked')) {
    payload['mycheckbox'] = $('#mycheckbox').val();
}

Вы можете имитировать эту семантику в Ajax или отправить флаг "флажок" напрямую следующим образом:

payload['mycheckbox'] = $('#mycheckbox').is(':checked');

Я бы порекомендовал имитировать семантику HTML-формы. Независимо от того, что делает клиент, я бы рекомендовал следующее в коде сервера:

if mycheckbox param exists and its value is either 'true' or 'on' {  // pseudo code of course
    // mycheckbox is checked
} else {
    // mycheckbox is unchecked
}

Надеюсь, это объяснение поможет.

Существует довольно удобный способ проверить все эти свойства элемента, такие как disabled, checkedи т. д. с prop функция. Это также преобразует его в логическое значение:

$('#checkbox').prop('checked'); // -> true/false
$('#checkbox').prop('disabled'); // -> true/false

Попробуй это

$('#checkbox').is(':checked')

Изменить:

$('#checkbox').val()

в

$('#checkbox').attr('checked')

var checkboxValue = $('#id').prop('проверено');

У меня была такая же проблема, и я нашел это решение:

if($("input[name='yourcheckbox']").is(':checked')) {
   console.log('chb checked');
} else {
   console.log('chb not checked');
}

Использование:

$('#checkbox').attr('checked')

Вы можете дать

if(jQuery(this).attr('флажок')){ // вам нужно использовать этот селектор в соответствии с вашей функцией, это может быть.click .live или еще..

Спасибо

Другие вопросы по тегам