Как вызвать функцию javascript один раз при загрузке страницы, перезагрузке страницы, не вызывать ее снова - PullRequest
0 голосов
/ 11 августа 2010

В корзине Magento есть две формы, которые необходимо заполнить: стоимость доставки и код купона.Каждый обновляет страницу после отправки формы.Форма сметы доставки должна быть представлена ​​до формы купона, чтобы купон мог подтвердить страну.

Я хотел бы позвонить в форму доставки coShippingMethodForm.submit() при загрузке.Таким образом, страна загружается, и тогда форма купона проверит страну.Это дает дополнительное преимущество, заключающееся в том, что начальные тарифы на доставку отображаются без необходимости отправки формы пользователем.

Моя задача: если я позвоню coShippingMethodForm.submit() при загрузке - это обновит страницу, а затем будет постоянно обновлятьсяc coShippingMethodForm.submit() продолжает отправлять и обновлять.

Как мне вызвать эту функцию один раз, обновить страницу и не запускать снова (если пользователь не нажмет кнопку отправки).

Пример страницы корзины Magento, на которую я ссылаюсь

Ответы [ 2 ]

1 голос
/ 11 августа 2010

Вы можете использовать cookie для предотвращения повторного заполнения при перезагрузке.
Функцию js для cookie-файлов broswer можно найти здесь http://www.quirksmode.org/js/cookies.html
В вашей функции JS coShippingMethodForm.submit

coShippingMethodForm.submit = function(){
     //check cookie here
     if(readCookie('already_submit')==1)
          return;
     createCookie('already_submit', 1, 1); //for 1 day
     //old code here
}

И на кнопку отправки добавьте строку eraseCookie:

<input type="submit" id="your_submit_button" 
       onclick="eraseCookie('already_submit');" />
1 голос
/ 11 августа 2010

Я вижу, что вы используете PHP, почему бы просто не иметь скрытую форму <input type='hidden' name='countrySubmitted' value='true' /> и затем, когда php отображает страницу, проверьте, установлено ли значение, если нет, то вызовите функцию для отправки.

echo "<script type='text/javascript'>";
if (isset($_POST['countrySubmitted']))
echo "document.coShippingMethodForm.Submit();";
echo "</script>";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...