Javascript / jQuery无法在移动设备上运行

时间:2016-09-21 08:32:04

标签: javascript android jquery mobile browser

我的网站有以下javascript代码:

$(document).ready(function () {

$('button').attr('disabled', true);

$('button').click(function () {
    $('.registration').addClass('fly-out');

    // Get the variables
    var firstname = document.getElementsByName('firstname')[0].value;
    var lastname = document.getElementsByName('lastname')[0].value;
    var mail = document.getElementsByName('mail')[0].value;

    var informatik = document.getElementById('Informatik').checked ? 1 : 0;
    var medientechnik = document.getElementById('Medientechnik').checked ? 1 : 0;
    var medizintechnik = document.getElementById('Medizintechnik').checked ? 1 : 0;
    var elektronik = document.getElementById('Elektronik').checked ? 1 : 0;
    var fachschule = document.getElementById('Fachschule').checked ? 1 : 0;

    // Send the data to php
    $.ajax({
        url: "add.php",
        type: "POST",
        data: {
            'first': firstname,
            'last': lastname,
            'mail': mail,
            'informatik': informatik,
            'medientechnik': medientechnik,
            'medizintechnik': medizintechnik,
            'elektronik': elektronik,
            'fachschule': fachschule
        }
    });

    // Show the thank you form
    setTimeout(function () {
        $('.registration').addClass('hidden');
        $('.registration').removeClass('fly-out');
        $('.thankyou').removeClass('hidden');


        // Blend out the thank you form
        setTimeout(function () {
            $('.thankyou').addClass('disappear');

            // Show the registration form again
            setTimeout(function () {
                $('.thankyou').addClass('hidden');
                $('.thankyou').removeClass('disappear');

                // Clear the registration form
                $('input[name=firstname]').val('');
                $('input[name=lastname]').val('');
                $('input[name=mail]').val('');
                $('#Informatik').prop('checked', false)
                $('#Medientechnik').prop('checked', false)
                $('#Medizintechnik').prop('checked', false)
                $('#Elektronik').prop('checked', false)
                $('#Elektronik-Fachschule').prop('checked', false)
                $('button').attr('disabled', true);

                $('.registration').removeClass('hidden');
            }, 400);
        }, 2500);
    }, 700);
});
});

function change() {
    var firstname = document.getElementsByName('firstname')[0].value;
    var lastname = document.getElementsByName('lastname')[0].value;
    var mail = document.getElementsByName('mail')[0].value;

    var informatik = document.getElementById('Informatik').checked;
    var medientechnik = document.getElementById('Medientechnik').checked;
    var medizintechnik = document.getElementById('Medizintechnik').checked;
    var elektronik = document.getElementById('Elektronik').checked;
    var fachschule = document.getElementById('Fachschule').checked;

    var result = firstname.length > 0 && lastname.length > 0 && mail.length > 0 && validateMail(mail);
    var result = result && (informatik || medientechnik ||
        medizintechnik || elektronik || fachschule);

    $('button').attr('disabled', !result);
}

function validateMail(mail) {
    var regex = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    return regex.test(mail);
}

它在桌面浏览器上运行得很好但是当我在Android上使用Chrome(6.0 Nexus 5)打开它时它无效(按钮甚至没有被禁用)。

我现在想知道我做错了什么,因为我需要让它在移动浏览器上运行。

1 个答案:

答案 0 :(得分:0)

问题是我的新手错误......

我通过CDN嵌入了jQuery,而不是本地机器。当我在手机上试用代码时,我将笔记本用作服务器。为此,我必须断开与无线网络的连接。因此,无法加载jQuery,因此代码无效。