jQuery Mobile和普通jQuery对话框冲突/无效

时间:2014-05-06 23:25:54

标签: javascript jquery jquery-ui jquery-mobile dialog

我提交了一系列对话框,这些对话框在提交网站上的表单时被调用。我已经调整了移动使用的网站,并将jquery movile(1.4.2)合并到标准的jquery和jquery-ui。

我的问题是,在移动网站上加载所有三个脚本的地方和时间,表单显示的对话框不能与加载的jquery移动脚本一起使用。

以下是我网站的代码;普通jquery(1.11.0),jquery mobile(1.4.2)和jquery ui(1.10.4)由于大小而未显示,但在主html页面中链接。

主要HTML

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="/CSS/jquery_mobile.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="CSS/Main.css">
<link rel="stylesheet"  type="text/css" href="CSS/Dropdown.css">
<!--[if lte IE 7]>
<link rel="stylesheet" type="text/css" href="CSS/Dropdown_ie.css"/>
<![endif]-->
<!--[if IE 8]>
<style>
.contact_form_message


{
    width: 320px;
    max-width: 330px;
    height: 100px;
    margin-left: 82px !important;

    background-color: #F4FAD8;
    color: #2D4206;
    margin-top: 5px;
    outline: none;  
    border: 1px solid;
    border-color: #A9AC95;
    position: absolute;

}



#form_mail_logo
{
width: 50px;    
height: 50px;
position:relative;
border: none;
top: -61px;
right: -435px;
}

.contact_form_fieldset
{
padding-left: 10px;
padding-right: 10px;
height: 355px;
}

.Form .ui-dialog-titlebar-close
{
float: right;
margin-top: 90px;
margin-right: 8px;
background-color: #A9AC95;
border: 1px solid;
border-color: #2D4206;
color: #2D4206;
font-size: 16px;
outline: none;
}

</style>
<![endif]-->

<!--[if IE 9]>
<style>


.Form .ui-dialog-titlebar-close
{
float: right;
margin-top: 90px;
margin-right: 8px;
background-color: #A9AC95;
border: 1px solid;
border-color: #2D4206;
color: #2D4206;
font-size: 16px;
outline: none;
}
</style>
<![endif]-->

<meta name="description" content="Tree Pro Ltd">
<meta name="keywords" content="Tree Surgery, TreePro, Tree Pro, Tree Care">
<meta name="author" content="Tree Pro Ltd">
<meta name="viewport" content="width=device-width, initial-scale=0.333">
<meta charset="UTF-8">
<link href='http://fonts.googleapis.com/css?family=Happy+Monkey' rel='stylesheet' type='text/css'>
<link href='http://fonts.googleapis.com/css?family=Nunito:400,300,700' rel='stylesheet' type='text/css'>
<link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'>
<title>
Contact us
</title>
<script type="text/javascript" src="JS/jquery.js"></script> 
<script type="text/javascript" src="JS/jquery_ui.js"></script>

<script type="text/javascript" src="JS/Main.js"></script>
<script type="text/javascript"  src="JS/dropdownhover.js"></script>
<script type="text/javascript" src="JS/dropdown.js"></script>
<script type="text/javascript" src="JS/cookie_accepted.js"></script>
<script type="text/javascript" src="JS/mobile_detect.js"></script>

</head>
<body id="bodyid">
<div title="Cookie Policy" class="Cookie_Warning" >
<p>Wellcome to Tree Pro Ltd. By using this site, you agree to that cookies will be stored on your computer.</p>
Read more about our cookie policy <a href="privacy.html">here</a>.

</div>

<div class="container">
<p>
<div class="topheader"><img src="Images/general/logo.jpg" alt="logo" id="logo"><span id="sitetitle">Tree Pro Ltd</span><span id="telnumber">Tel: 01622 851576</span>
<a href="http://facebook.treeproltd.co.uk"><img id="facebook_logo" src="Images/icons/Facebook.png" alt="Facebook icon"></a><a href="http://twitter.treeproltd.co.uk"> <img id="twitter_logo" src="Images/icons/Twitter.png" alt="Twitter icon"></a><a href="mailto:contact@treeproltd.co.uk?Subject=Enquiry"> <img id="mail_logo" src="Images/icons/Mail.png" alt="Mail icon"></a></div>
<p>
<div class="bottomheader">

<ul class="dropdown">
            <li class="left"><a href="/">Home</a>
                <ul class="sub_menu">
                </ul>
            </li>


            <li><a>Our Services</a>
                <ul class="sub_menu">
                     <li class="top"><a href="felling.html">Tree Surgery - Felling</a></li>
                     <li><a href="pruning.html">Tree Surgery - Pruning</a></li>
                     <li class="bottom"><a href="patiocleaning.html">Patio Cleaning</a></li>

                </ul>
            </li>

            <li><a href="gallery.html">Gallery</a>
                <ul class="sub_menu">
                </ul>
            </li>


            <li ><a>Our Work</a>
                <ul class="sub_menu">
                     <li class="top"><a href="aboutus.html">About Us</a></li>
                     <li><a href="testimonials.html">Testimonials</a></li>
                     <li><a href="ourpartners.html">Our Partners</a></li>

                      <li class="bottom"><a href="faqs.html">FAQ's</a></li>
                </ul>
            </li>

            <li class="right"><a>Contact</a>
                <ul class="sub_menu">
                     <li class="top"><a href="contactus.html">Contact Us </a></li>
                     <li class="bottom"><a href="findus.html">Find Us</a></li>

                </ul>
            </li>

        </ul>

    <form id="searchform" name="search" action="searchresults.php" method="get" >
    <input id="searchbox" type="text"  name="query" value=""  >
    <input id="searchbutton" value="Search"  onClick="Clear();" type="submit" >
    <input id="hidden" type="hidden" name="search" value="1">
    </form>
</div>

<div id="mobile_bottomheader"> 

<select class="mobile_dropdown" id="mobile_select">
    <option class="mobile_dropdown_option" value="contactus.html">Contact us</option>
    <option value="/">Home</option>
    <option value="felling.html">Tree Felling</option>
    <option value="pruning.html">Tree Pruning</option>
    <option value="patiocleaning.html">Patio Cleaning</option>
    <option value="gallery.html">Gallery</option>
    <option value="aboutus.html">About us</option>
    <option value="testimonials.html">Testimonials</option>
    <option value="ourpartners.html">Our Partners</option>
    <option value="faqs.html">FAQ's</option>

    <option value="findus.html">Find us</option>
</select>



</div>
<p>

<div class="maincontent">
  <div class="form_content_title">Contact Us</div>
  <br><br>
 <div class="form_text_content"> 
  We thank you for taking interest in Tree Pro and appreciate you want to contact us. <br><br>
  Please use the contact form below to directly contact us or alternatively email us by clicking the mail icon on the form.
  <br><br>  To find out where we are, either click <a href="findus.html">here</a> or select the "Find Us" option from the contact menu.

 </div>
 <img src="Images/general/woodland_1.jpg" alt="Woodland Image" id="static_form_image">
 <br><br>
 <form data-role="none" class="contact_form"  name="contact_form">
 <fieldset class="contact_form_fieldset">
 <label class="contact_form_label">Name:</label>     <input id="name" class="contact_form_input" name="name" type="text"><br><br>
 <label class="contact_form_label">E-mail:</label>    <input id="email" class="contact_form_input" name="email" type="text"><br><br>
 <label class="contact_form_label">Phone:</label>    <input id="phone" class="contact_form_input" name="phone" type="text"><br><br>
 <label class="contact_form_label">Subject:</label>
 <select data-role="none" class="contact_form_input_subject" id="subject" name="subject">
 <option data-role="none" value="Tree Surgery">Tree Surgery</option>
 <option data-role="none" value="Patio Cleaning">Patio Cleaning</option>
 <option data-role="none" value="Fire Wood / Wood Chippings">Fire wood / Wood chippings</option> 
 <option data-role="none" value="Testimonial">Testimonial</option>
 <option data-role="none" value="Complaint">Complaint</option>
 <option data-role="none" value="Other">Other</option>
 </select>
 <br><br>
 <label class="contact_form_label">Message:</label> <textarea class="contact_form_message" id="message" name="message"></textarea>
 <br><br>
 <input class="contact_form_button" name="submit" data-role="none" type="submit" onclick="Form_Validation()" value="submit">
 </fieldset>
 </form>

 <a href="mailto:contact@treeproltd.co.uk?Subject=Enquiry"> <img id="form_mail_logo" src="Images/icons/Mail.png" alt="Mail icon"></a>

<div id="success_message" title="Thankyou" class="hidden_message" >
<p>Thank you for contacting us, we shall be in touch shortley.</p>
</div>
<div  id="no_name_message" title="No Name entered" class="hidden_message">
  <p >No name has been entered, please enter a name.</p>
</div>
<div id="invalid_email_message" title="Invalid E-mail address" class="hidden_message">
  <p>The email address you have entered is invalid, please enter a valid one.</p>
</div>
<div id="invalid_phone_message" title="Invalid phone number" class="hidden_message">
  <p>The phone number you have entered is invalid, please enter a valid one consisting of 11 digits.</p>
</div>
<div id="invalid_phone_and_email_message" title="Invalid contact details" class="hidden_message">
  <p>Both the phone number and the email address you have entered are not valid, please ensure they are both correct.</p>
</div>
 </div>
<p class="maincontentspace"></p>
<br><br>
<div class="footer">
<p>

<div id="footer_links"><a href="terms.html">Terms & Conditions</a>&nbsp;&nbsp;<a href="privacy.html">Privacy Policy</a>&nbsp;&nbsp;<a href="help.html">Help</a></div>
<div id="copyright">© Copyright Tree Pro Ltd 2014 </div></div>
<p class="footerspace"></p>
</div>
</body>
</html>

mobile_detect.js (确定是否按屏幕宽度加载jquery mobile,如果是,还会显示ID元素“mobile_select”,该网站的移动导航菜单是什么。)

$(function(){

 if (screen.width < 600)
 {





var imported = document.createElement('script');
imported.src = '/JS/jquery_mobile.js';
document.head.appendChild(imported);



 document.getElementById("mobile_select").onchange = function() {
        if (this.selectedIndex!==0) {
            window.location.href = this.value;
        }        
    };
 }

 });

main.js (在表单提交期间满足条件时显示隐藏div的对话框)

// Initation when submit button is clicked
$(function() {
  $(".contact_form_button").click(function() {

//Getting ID's from html
      var name = $("input#name").val();
      var email = $("input#email").val();
      var phone = $("input#phone").val();
      var subject = $("select#subject").val();
      var message = $("textarea#message").val();


//Triming of white space for email adresses and phone numbers


var trimed_email = $.trim($("#email").val());

var trimed_phone = $.trim($("#phone").val());

//Getting posistion of email elemnts
var x=document.getElementById("email").value;
        var atpos=x.indexOf("@");
        var dotpos=x.lastIndexOf(".");

//Validation below          

if (document.getElementById("name").value == "")

{
$("#no_name_message").dialog({dialogClass: "Form"});

return false;

}

else if (((atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length) && (trimed_email.length>=1)) && (trimed_phone.length!==11 && trimed_phone.length!==0))

{
$("#invalid_phone_and_email_message").dialog({dialogClass: "Form"});
return false;
            }
else  if  (trimed_phone.length!==11 && trimed_phone.length!==0 )
{

$("#invalid_phone_message").dialog({dialogClass: "Form"});
return false;
}
else if ((atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length) && (trimed_email.length>=1))

{

$("#invalid_email_message").dialog({dialogClass: "Form"});
return false;

}   

else    
    {
//Form proceesing below   
var dataString = 'name='+ name + '&email=' + email + '&phone=' + phone + '&subject=' + subject + '&message=' + message;

//alert (dataString);return false;

$.ajax({
  type: "POST",
  url: "php/form.php",
  data: dataString,
  success: $("#success_message").dialog({dialogClass: "Form"}),

});
return false;
    }

  });

});

那么,当加载jquery mobile时,为什么带有“hidden_​​message”类的div没有出现的任何想法?

任何帮助非常感谢,Elliott。

1 个答案:

答案 0 :(得分:0)

我最终解决了它。不得不调整其中一个java脚本文件,因为这样会阻止加载对话框的JS代码。