Флажок всегда включен
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 ответов
Значение флажка всегда "включено". 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').val()
в
$('#checkbox').attr('checked')
У меня была такая же проблема, и я нашел это решение:
if($("input[name='yourcheckbox']").is(':checked')) {
console.log('chb checked');
} else {
console.log('chb not checked');
}
Вы можете дать
if(jQuery(this).attr('флажок')){ // вам нужно использовать этот селектор в соответствии с вашей функцией, это может быть.click .live или еще..
Спасибо