Попытка иметь три действия происходит через jquery и javascript на странице WordPress.Весь огонь в Firefox, но не в Chrome или Safari - PullRequest
0 голосов
/ 23 августа 2011

Я пробовал это разными способами, и единственный способ, которым это работает, заключается в следующем.

У меня есть обработчик jQuery.click, возникающий при нажатии на страницу, и обработчик jQuery.submit при отправке. Сама форма представляет собой сообщение для платежей Google. Опять же, как у меня это работает просто отлично в Firefox, но не повезло вообще в Chrome или Safari. Может быть, я что-то здесь упускаю. Я изучил документацию Jquerys, немного осмотрелся и до сих пор не знаю, в чем проблема. Что я делаю не так или нет? (Я также пытался заставить обработчик отправки вызвать функцию js, содержащую информацию об открытии окна.) Я также хотел иметь проверку поля, но в том числе это просто разрушает все это в Firefox. Любые идеи будут великолепны.

jQuery('#submission_button').click(function()
{
var download_id=document.getElementById("the_download").value;
if (download_id=="1") window.open("http://www.blahblahblah.com/something1.pdf",'Download');
if (download_id=="2") window.open("http://www.blahblahblah.com/something2.pdf",'Download');
}


jQuery('#myform').submit(function() 
{ 
var downloaditem = document.getElementById("the_download");
var thedownloaditem = downloaditem.options[downloaditem.selectedIndex].text;
var data = {
    action: 'mail_before_submit',
    firstname: document.getElementById('first').value,
    lastname: document.getElementById('last').value,
    address: document.getElementById('address').value,
    city: document.getElementById('city').value,
    state: document.getElementById('state').value,
    zip: document.getElementById('zip').value,
    phone: document.getElementById('phonenumber').value,
    email: document.getElementById('email').value,
    thedownload: thedownloaditem,
    donationamt: document.getElementById('somepricefield').value,
    _ajax_nonce: <?php echo wp_create_nonce( 'my_email_ajax_nonce' ); ?>
};
jQuery.post("http://www.myurlforwordpress.org/wp-admin/admin-ajax.php", data, function(response) {
        //alert('Got this from the server: ' + response);
});
this.submit();
});
}

1 Ответ

0 голосов
/ 23 августа 2011

Попробуйте этот код, который устраняет несколько проблем:

  1. Исправляет синтаксическую ошибку в строке nonce (составляет случайное число, потому что неясно, что это должно быть).
  2. Полностью удаляет функцию .submit (). Если вы пытаетесь вызвать ajax по нажатию кнопки, это не нужно и усложняет ситуацию.
  3. Очищает организацию кода.

Поскольку я не могу запустить этот код, я не могу обещать, что больше нет синтаксических ошибок, но он должен идти в правильном направлении.

Вот код:

jQuery('#submission_button').click(function() {
    var download_id=document.getElementById("the_download").value;
    if (download_id=="1") window.open("http://www.blahblahblah.com/something1.pdf",'Download');
    if (download_id=="2") window.open("http://www.blahblahblah.com/something2.pdf",'Download');

    var downloaditem = document.getElementById("the_download");
    var thedownloaditem = downloaditem.options[downloaditem.selectedIndex].text;
    var data = {
        action: 'mail_before_submit',
        firstname: document.getElementById('first').value,
        lastname: document.getElementById('last').value,
        address: document.getElementById('address').value,
        city: document.getElementById('city').value,
        state: document.getElementById('state').value,
        zip: document.getElementById('zip').value,
        phone: document.getElementById('phonenumber').value,
        email: document.getElementById('email').value,
        thedownload: thedownloaditem,
        donationamt: document.getElementById('somepricefield').value,
        _ajax_nonce: "my_email_ajax_nonce" + Date.now()
    };
    jQuery.post("http://www.myurlforwordpress.org/wp-admin/admin-ajax.php", data, function(response) {
        //alert('Got this from the server: ' + response);
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...