javascript — AJAX не запускается в Safari или Safari Mobile

По какой-то причине мое событие AJAX не запускается в Safari на моем Mac или моем iPad / iPhone. Я новичок в этом, так что это может быть (и, вероятно, есть) ошибка программистов, но вот мой код:

<form class='send-form'>
<input type="hidden" name="csv-val" value="">
<input type="hidden" name="img-val" value="">
<button type='button' class='send-it' onclick='$(sendTheData(event))'>
Manual Submit
</button>
</form>

<script>
function sendTheData(event){
var sendButton = $(event.target);
var theForm = sendButton.parents('form');
var theFormClass = sendButton.parents('form').attr('class');
console.log("Parent form is " + theFormClass);
$.ajax({
async: "true",
type: 'GET',
url: 'save.php',
data: $(theForm).serialize()
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});
return false;
}
</script>

Обратите внимание, что элемент с классом send-form добавляется к документу другим скриптом jQuery и не появляется на странице при начальной загрузке, что может повлиять на ситуацию; Я не уверен.

1

Решение

шаги:

  • Исправить onclick приписывать onclick="sendTheData(event);"
  • Проверьте, если url правильный.
  • Измените метод с GET в POST,

Примечание относительно класса формы: вы можете установить id к конкретной форме, то и привязать переменную к этому id вместо class, Старайтесь избегать parent() и аналогичные функции, так как они используют слишком много ресурсов (вы делаете цикл по всем элементам, затем через родителей, а затем находите правильный, вместо того, чтобы просто стремиться к правильному элементу напрямую).

0

Другие решения

Попробуйте добавить ответный вызов сбоя, возможно, вы получите ошибку …
Вы получаете пример для этого на http://api.jquery.com/jQuery.ajax/

0

По вопросам рекламы [email protected]