2016-03-28 11 views
0

Benim html kodum e-posta göndermek için php'ye istek gönderir. Benim durumumda e-posta Google Chrome & Edge'de gönderilebilir, ancak type = button değiştirdiğimde button = submit değerini ayarladığımda Firefox'ta değil, iyi çalışıyor. Benim javascript kodudur:Firefox'ta sunucu isteğinde hata oluştu = type for button

function Send() { 
    var allset = true; 
    var namevalid = true; 
    var emailvalid = false; 
    var commentvalid = false; 
    var sent = 0; 

    var emailPattern = /^[a-zA-Z0-9._-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/; 

    if ($("#email").val() == '' || $("#email").val() == null) { 
     $("#email").addClass("invalid"); 
     allset = false; 
    } 
    else { 

     if (!$("#email").val().match(emailPattern)) { 
      $("#email").removeClass("valid"); 
      $("#email").addClass("invalid"); 
      allset = false; 

     } 

     else { 
      emailvalid = true; 
      $("#email").addClass("valid"); 
     } 

    } 

    if ($("#comment").val() == '' || $("#comment").val() == null) { 
     $("#comment").addClass("invalid"); 
     allset = false; 
    } 
    else { 
     commentvalid = true; 
     $("#comment").addClass("valid"); 
    } 
    $("#name").addClass("valid"); 

    if (namevalid === true && emailvalid === true && commentvalid === true) { 
     var name = document.getElementById("name").value; 
     var email = document.getElementById("email").value; 
     var number = document.getElementById("number").value; 
     var demo = document.getElementById("sel1").value; 
     var comment = document.getElementById("comment").value; 

     alert("Request Successfully Received"); 


     var xhttp = new XMLHttpRequest(); 
     xhttp.onreadystatechange = function() { 

      if (xhttp.readyState == 4 && xhttp.status == 200) { 
       alert(xhttp.responseText) 
      } 
     }; 
     sent = 1; 
     xhttp.open("POST", "email.php?" + "name=" + name + "&mail=" + email + "&phone=" + number + "&msg=" + comment + "&demo=" + demo, true); 
     xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
     xhttp.send(); 

    } 
    else 
    { 
     alert("Please fill all the fields correctly"); 
    } 


} 

formun düğme için My html:

<form class="form" id="form1"> 

     <p class="name"> 
     <input name="name" type="text" class="validate[required,custom[onlyLetter],length[0,100]] feedback-input" placeholder="Name" id="name" /> 
     </p> 

     <p class="email"> 
     <input name="email" type="text" class="validate[required,custom[email]] feedback-input" id="email" placeholder="Email" /> 
     </p> 

     <p class="number"> 
     <input type="text" name="telephone" maxlength="30" class="feedback-input" size="30" id="number" placeholder="Number"> 
     </p> 

<p class="number" id="demotype"> 
     <select class="form-control feedback-input demotype" id="sel1" name="demo"> 


     <option> something </option> 

     </select> 
     </p> 

     <p class="text"> 
     <textarea name="text" class="validate[required,length[6,300]] feedback-input" id="comment" placeholder="Comment"></textarea> 
     </p> 


     <div class="submit"> 
      <input type="submit" id="button-blue" onclick="Send()" value="Send" /> 

     <div class="ease"></div> 
     </div> 
    </form> 
+1

Firefox'ta Send() işlevi yürütülmüyor mu diyorsunuz? Ya da 'email.php' beklendiği gibi çalışmıyor mu? Sorunuzu dillendirdiğinizden net değil. Yayınlanan kodu mümkün olduğunca basitleştirmelisiniz. Sorunu anlamak için kritik olmayan tüm parçaları çıkartın ve bir jsfiddle kullanın. Gönder düğmesine 'name =' submitbutton 'ekleyin. Formunuza 'method = 'POST' ekleyin. Php'nize var_dump ($ _ POST, $ _GET) ekleyin. Bir AJAX'a ihtiyaç duymadan sorunu sunmaya çalışın. – bg17aw

+0

Vanilla javascript'i jQuery ile karıştırmanın sebebi nedir? Neden tüm kod için jQuery sözdizimini ve yöntemlerini kullanmıyorsunuz? Sizin için en kolay ve çapraz tarayıcı uyumluluk için güvenlidir. –

cevap

0

'type = submit' formları ve 'type = düğme' ile bağlamak üzere sadece bir butona gönderdiğiniz için temelde bazı işlevler. Üst öğesi olarak herhangi bir formunuz yoksa ve bu düğmeyi tıklattığınızda bir hata oluşursa, bunun yerine 'type = button' kullanmanızı öneririm.

+0

Kodumda bir formum var –

+0

@Marium Malik O zaman, kodunuza bir istisna işlemiyle bir satır ekleyerek yardımcı olabilir. –

+0

Nereye eklemeliyim? –

0

Sadece return false; işlevini ekledikten sonra submit düğmesi formunuzu gönderir. Bunun gibi.

function Send() { 
var allset = true; 
      var namevalid = true; 
      var emailvalid = false; 
      var commentvalid = false; 
      var sent=0; 

      var emailPattern = /^[a-zA-Z0-9._-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;  




      if ($("#email").val() == '' || $("#email").val() == null) { 
       $("#email").addClass("invalid"); 
       allset = false; 
      } 
      else { 

       if (!$("#email").val().match(emailPattern)) { 
        $("#email").removeClass("valid"); 
        $("#email").addClass("invalid"); 
        allset = false; 

       } 

       else { 
        emailvalid = true; 
        $("#email").addClass("valid"); 
       } 

      } 

      if ($("#comment").val() == '' || $("#comment").val() == null) { 
       $("#comment").addClass("invalid"); 
       allset = false; 
      } 
      else { 
       commentvalid = true; 
       $("#comment").addClass("valid"); 
      } 
     $("#name").addClass("valid"); 

      if (namevalid === true && emailvalid === true && commentvalid === true) { 
       var name = document.getElementById("name").value; 
       var email = document.getElementById("email").value; 
       var number = document.getElementById("number").value; 
       var demo=document.getElementById("sel1").value; 
       var comment = document.getElementById("comment").value;     

alert("Request Successfully Received"); 


    var xhttp = new XMLHttpRequest(); 
xhttp.onreadystatechange = function() { 

if (xhttp.readyState == 4 && xhttp.status == 200) { 
alert(xhttp.responseText) 
} 
}; 
sent=1; 
xhttp.open("POST", "email.php?"+"name="+name+"&mail="+email+"&phone="+number+"&msg="+comment+"&demo="+demo, true); 
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
xhttp.send(); 





} 
else 
{ 
    alert("Please fill all the fields correctly"); 
} 

return false; 

} 
+0

Hala çalışmıyor –

+0

güncelleştirilmiş ans kontrol edin. –

+0

Yine aynı, değişiklik yok –

İlgili konular