Javascript — флажок не работает, если страница использует SSL (используя Kentico CMS)

У меня есть страница формы, которая изначально была незашифрованной. Теперь, когда у нас есть сертификат SSL на этом веб-сервере, я пытаюсь настроить нашу страницу так, чтобы страница формы использовала сертификат SSL.

У нас есть флажок, который указывает, что пользователь прочитал политику конфиденциальности перед отправкой. Существует код Javascript, который проверяет, установлен ли флажок, и если это не так, он выдает предупреждение, и форма не отправляется. Когда страница зашифрована с помощью SSL, код Javascript полностью игнорируется.

Ниже приведен код флажка. Как я уже сказал, он отлично работает по http, но вообще не реагирует, когда страница использует https.

<script type="text/javascript">
$(document).ready(function(){
    $("#form").submit(function(event){
        if(!$("input[type='checkbox']").attr("checked")){
            alert("内容に同意ください。");
            event.preventDefault();
        }
    });
});
</script>

person Tensigh    schedule 13.06.2014    source источник
comment
Это звучит действительно жутко. Тем не менее, поскольку attr реагирует по-разному в версиях jQuery, Ссылка на страницу jQuery ответ jakentus может быть решением.   -  person winner_joiner    schedule 13.06.2014
comment
Хорошо. Мы используем Kentico, так что это может иметь какое-то отношение к этому. Если бы это был просто Javascript, я бы так не волновался.   -  person Tensigh    schedule 13.06.2014
comment
Какую версию Kentico вы используете?   -  person winner_joiner    schedule 13.06.2014
comment
Версия 6. Узнал в чем проблема - можно сам ответить на свой вопрос?   -  person Tensigh    schedule 13.06.2014
comment
Да, ты можешь. вам просто нужно подождать несколько часов. :)   -  person winner_joiner    schedule 13.06.2014
comment
возможный дубликат http://stackoverflow.com/questions/1056497/simple-jquery-code-works-fine-until-site-is-loaded-via-https   -  person Charles Wesley    schedule 13.06.2014


Ответы (2)


используйте $('#checkbox').prop('checked') чтобы проверить, установлен ли флажок.

<script type="text/javascript">
$(document).ready(function(){
    $("#form").submit(function(event){
        if(!$('#input[type='checkbox']').prop('checked')){
            alert("内容に同意ください。");
            event.preventDefault();
        }
    });
});
</script>
person jakentus    schedule 13.06.2014
comment
Я попробовал это, и я получил тот же результат. В http он работает правильно (я получаю ошибку, если флажок не установлен), но в https странице все равно, установлен флажок или нет. - person Tensigh; 13.06.2014

Я узнал, в чем проблема. JQuery работает, но загружается с использованием http, а не https (я вообще не знал, что jQuery используется).

Как только я загрузил jQuery с помощью https, он отлично заработал. Спасибо всем за помощь.

person Tensigh    schedule 13.06.2014
comment
Вот более подробный ответ на тот же вопрос. - person Charles Wesley; 13.06.2014