По какой-то причине мое событие 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 и не появляется на странице при начальной загрузке, что может повлиять на ситуацию; Я не уверен.
шаги:
onclick
приписывать onclick="sendTheData(event);"
url
правильный.GET
в POST
,Примечание относительно класса формы: вы можете установить id
к конкретной форме, то и привязать переменную к этому id
вместо class
, Старайтесь избегать parent()
и аналогичные функции, так как они используют слишком много ресурсов (вы делаете цикл по всем элементам, затем через родителей, а затем находите правильный, вместо того, чтобы просто стремиться к правильному элементу напрямую).
Попробуйте добавить ответный вызов сбоя, возможно, вы получите ошибку …
Вы получаете пример для этого на http://api.jquery.com/jQuery.ajax/