javascript - 按钮点击在移动设备上不起作用

标签 javascript jquery

所以我有一个在按钮上有 2 个按钮的表单。

<div class="col-xs-12">
    <div class="submit-button-mobile">Submit</div>
</div>
<div class="col-xs-12">
    <a href="/how_to_book.php">
        <div class="how-to-book-button-mobile">
            How to book?
        </div>
    </a>
</div>

最初我在 submit-button-mobile 上有 onclick="send_message();"(它适用于桌面但不适用于移动设备。标签也是在手机上不可点击。

我在这里搜索并找到了可以在移动设备上运行的答案

        $('.submit-button-mobile').on('click touchstart', send_message);
        $('.how-to-book-button-mobile').on('click touchstart', function() {
            window.location.href = "/how_to_book.php";
        });

仍然有同样的问题,在移动设备上无法点击(在带有移动 View 的 chrome 开发者工具上试过,在 iphone 和 android 上试过)。

send_message() 位于文件顶部的另一个 .js 文件中。 看起来像这样

function send_message()
        {
            var a=document.forms["Form"]["name"].value;
            var b=document.forms["Form"]["email"].value;
            var c=document.forms["Form"]["message"].value;
            var d=document.forms["Form"]["surname"].value;

            document.getElementById("contact_message").innerHTML = "Sending your message... Please wait.";

            loadXMLDoc(a, b, c, d);
        }


        //pomocna funkcija za validaciju emaila
        function validateEmail(email) {
            var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
            return re.test(email);
        }

        //funkcija za slanje emaila
        function loadXMLDoc(name, mail, message, surname)
        {
            var xmlhttp;
            if (window.XMLHttpRequest)
              {// code for IE7+, Firefox, Chrome, Opera, Safari
              xmlhttp=new XMLHttpRequest();
              }
            else
              {// code for IE6, IE5
              xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
              }
            xmlhttp.onreadystatechange=function()
              {
              if (xmlhttp.readyState==4 && xmlhttp.status==200)
                {
                document.getElementById("contact_message").innerHTML=xmlhttp.responseText;
                document.getElementById("contact_message2").innerHTML=xmlhttp.responseText;
                }
              }

            // xmlhttp.open("GET","send_enquiry.php",true);
            xmlhttp.open("POST","send_enquiry.php",true);
            xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
            xmlhttp.send("name=" + name + "&email=" + mail + "&message=" + message + "&surname=" + surname);

            xmlhttp.send();
        }

最佳答案

可能您必须在您定义了 send_message() 定义的同一个文件中编写点击函数,点击定义应该在 document.ready() 中功能。首先检查您是否在点击 div 时收到警报。

$(document).ready(function() {
$('.how-to-book-button-mobile').on('click touchstart', function(e) {
					e.preventDefault();
           alert("how-to-book-button-mobile");
});
$('.submit-button-mobile').on('click touchstart', function(e) {
           e.preventDefault();
           alert("submit");
});
});
<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<div class="col-xs-12">
    <div class="submit-button-mobile">Submit</div>
</div>
<div class="col-xs-12">
    <a href="#">
        <div class="how-to-book-button-mobile">
            How to book?
        </div>
    </a>
</div>

This answer也可能对您有所帮助。

关于javascript - 按钮点击在移动设备上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36976743/

相关文章:

javascript - 如何使 Bootstrap 缩略图大小相同,即使在调整窗口大小后也是如此?

javascript - 具有相同类的每个输入的 jQuery Focus/Blur - 有问题

javascript - 如何更改通过滚动激活的选项卡元素样式?

javascript - 使用 JavaScript 从干净/SEO 友好的 URL 获取查询字符串参数

javascript - MaterializeCSS - ASP.Net MVC : Checkbox in modal

javascript - 如何在鼠标悬停时显示弹出文本?

asp.net - 对一个页面执行一次脚本

jquery - 导航栏不会在 Twitter Bootstrap 3 模板中折叠和居中

javascript - 使用ajax和jquery获取数据

javascript - jQuery 在动态加载的 div 上添加类