2015-09-04 4 views
-1

Я использую бесплатный шаблон для блоггеров, и есть возможность отправить форму с некоторой информацией. Некоторые из них являются необязательными, некоторые из них необходимы. Кусок кода, который заботится об отправке электронной почты являетсяКак избежать preventdefault

$('#send-order').click(function(e) { e.preventDefault(); passEmail() }); 

и passEmail просто это

function passEmail() { 
    simpleCart({ 
     checkout: { 
      type: "SendForm", 
      method: "POST", 
      extra_data: { 
       firstname: document.getElementById("first_name").value, 
       lastname: document.getElementById("last_name").value, 
       email: document.getElementById("email").value, 
       phone: document.getElementById("phone").value, 
       address: document.getElementById("address").value, 
       postcode: document.getElementById("postcode").value, 
       comments: document.getElementById("message").value 
      } 
     } 
    }); 
    simpleCart.checkout(); 
}; 

function cleanUrl(url) { 
    return url.replace(/^https?\:\/\//i, "") 
}; 

function storeUrl() { 
    return $(location).attr('hostname') 
} 
simpleCart.bind('beforeCheckout', function (data) { 
    data.first_name = document.getElementById("first_name").value; 
    data.last_name = document.getElementById("last_name").value; 
    data.phone = document.getElementById("phone").value; 
    data.email = document.getElementById("email").value; 
    data.address = document.getElementById("address").value; 
    data.postcode = document.getElementById("postcode").value; 
    data.comments = document.getElementById("message").value; 
}); 

Существует способ обойти preventDefault(), так что электронная почта не проходит через процесс проверки?

+0

Где происходит процесс проверки? – Jack

+0

@JackPattishall Я думаю, что проверка сделана как-то на компьютере человека, предоставившего шаблон. Всякий раз, когда вы пытаетесь отправить его, не заполняя все необходимые поля, вы получаете предупреждение, которое гласит: «страница на www.xyz.com говорит: ...», где xyz - страница парня, создавшего шаблон. Наверное, нет способа обойти его правильно? – user2692552

ответ

0

e.preventDefault() в этом контексте выглядит так потому, что #send-order является <a> или, скорее всего, кнопка отправки <input type="submit"/>. Вы можете сделать #send-order щелчком мыши <div>. Я не уверен, что будет позволять вам обойти проверку, хотя ...

UPDATE

Иногда, я считаю, что проще использовать быструю и грязную несемантические <div> кнопки:

<div id="send-order" style="cursor: pointer; pointer-events: auto;">SEND</div> 

Я уверен, вы можете использовать <button id="send-order">SEND</button>, по умолчанию от него не ожидается поведение afaik.

+0

Я попытался сменить кнопку, которая имеет id = "send-order" в div, но .. ничего не изменилось, к сожалению. – user2692552

+0

@ user2692552 Я обновил ответ. Кстати, когда вы назначаете этот идентификатор новой кнопке, убедитесь, что вы удалили другой идентификатор. Если на одной и той же странице есть два или более элемента с одним и тем же идентификатором, ваш сценарий завершится неудачно или вы получите неожиданные результаты. – zer00ne

Смежные вопросы