#jquery #ajax
#jquery #ajax
Вопрос:
У меня есть следующий код, но когда я отправляю перенаправление со страницы. Я хочу иметь возможность публиковать в ней с помощью jquery / ajax, чтобы страница не обновлялась при отправке. Может ли кто-нибудь показать мне демо-версию jsfiddle?
<form id="widget_contact" action="http://www.mysaintssearch.com/?cmd=sb-gimmeamp;from=?cmd=home" method="post">
<input type="text" name="pcode" id="fc_name" />
<input type="hidden" name="hdnCmd" value="sb-gimme" />
<input name="send_button" id="fc_submit" class="btn_b" type="submit" value="Gimme" />
</form>
Комментарии:
1. Где вы застряли? Есть очень наглядный пример на api.jquery.com/jQuery.post мы не пишем для вас, мы помогаем вам писать.
Ответ №1:
Взгляните на jQuery post()
:
$.ajax({
type: 'POST',
url: url,
data: data,
success: success,
dataType: dataType
});
Ответ №2:
Вы запросили jsFiddle
HTML
Мне пришлось изменить URL действия, иначе это XSS
<form id="widget_contact" action="/" method="post">
<input type="text" name="pcode" id="fc_name" />
<input type="hidden" name="hdnCmd" value="sb-gimme" />
<input name="send_button" id="fc_submit" class="btn_b" type="submit" value="Gimme" />
</form>
JAVASCRIPT
$('#widget_contact').submit(function(e){
e.preventDefault();
var form = $(this);
$.ajax({
url: form.prop('action'),
method: form.prop('method'),
data: form.serialize(),
success: function(){
alert('Hurraaaayyy');
}
});
});
Комментарии:
1. я забыл упомянуть, что эта форма находится на другом веб-сайте
2. Вы не можете опубликовать в другом домене. Это был бы межсайтовый скриптинг . Единственной возможностью было бы использовать CORS , но это несовместимо с несколькими браузерами.
Ответ №3:
Я настоятельно рекомендую использовать плагин jQuery form.
Ответ №4:
$('#widget_contact').submit(function(){
$.post('http://www.mysaintssearch.com/?cmd=sb-gimmeamp;from=?cmd=home', $('#widget_contact').serialize(), function(data) {
// data is the variable that's returned from the form page
});
return false; // so the page won't submit
});
Ответ №5:
Есть несколько вещей, которые я не использую на своих веб-сайтах:
форма, таблица, тип ввода «Отправить», кнопка «тип ввода», имя в идентификаторах, если это не элемент с несколькими вариантами выбора (например, флажок)
В данном случае, в частности, мое решение было бы:
<div ....>
<input type="text" id="fc_name" />
<span id='hdnCmd' style='display:none; ' >sb-gimme</span>
<span onClick='mySubmit(); ' >SUBMIT</span>
</div>
...
function mySubmit() {
var myData = 'fc_name=' $('#fc_name').val();
myData = 'amp;hdnCmd=' $('#hdnCmd').text();
$.post('processingPage.asp', myData, function (data) {
... display a returning success or failure
});
}
Комментарии:
1. Это ужасный совет! Вы должны использовать HTML-элементы, а не какую-то странную их репликацию на JavaScript. Во-первых, это проще, а во-вторых, оно должным образом ухудшается, когда JavaScript выключен.