2013-08-13 2 views
0

Как-то моя форма не работает. Кто-нибудь знает почему? Кажется, что ajax вообще не пинает, потому что действие ногами - data.php, а не data_ajax.php, и я должен увидеть, работает ли ajax.Форма Ajax не работает

EDIT

Изменен HTML к тому, что он на самом деле выглядит, хотя она должна быть такой же результат.

HTML

<div id="hidden_slidersize"></div> 
<script type="text/javascript"> 
$(function(){ 
if ($('body').width() >= 960) { 
var sizeOfSlider = 500; 
} else { 
var sizeOfSlider = ($('body').width())/2; 
} 
$('#hidden_slidersize').html('<form id="dataform" method="post" name="hiddentrick_form" action="data.php"><fieldset><input id="hiddentrick" name="hiddentrick" type="hidden" value="' + sizeOfSlider + '" /><input class="datasubmit" type="submit" value="senddata" /></fieldset></form>'); 
}); 
</script> 

Script

$(document).ready(function() { 

var form = $('form#dataform'); 

     form.submit(function() { 

    $.ajax({ 
     type: 'POST', 
     url: 'data_ajax.php', 
     data: form.serialize(), 
     dataType:'html', 
     success: function(data) {alert('yes');}, 
     error: function(data) { 
     //AJAX request not completed 
     alert('no'); 
     } 
    }); 
    return false; 

     }); 
}); 
+0

В вашем скрипте должно быть что-то неправильное либо в 'data_ajax.php', либо в другом месте. Точная копия-паста (замененная 'data_ajax.php' URI) работает: http://jsfiddle.net/r9Cj7/ – jterry

+0

Как вы отправляете форму? Есть кнопка для клика? –

+0

Прямо сейчас есть кнопка отправки, хотя мой план состоит в том, чтобы сделать ее автоматической, когда она работает. Файл data_ajax.php не существует. Я сделал это так, чтобы я мог убедиться, что ajax начал пинать, и я получу предупреждение «нет». Но сейчас я получаю - не могу найти data.php. Это скажет, что ajax не работает. – Rhyder

ответ

1

Вы должны использовать .on() метод, потому что ваш контент загружается динамически.

$(document).ready(function() { 

$(document).on('submit', 'form#dataform', function() { 

    $.ajax({ 
     type: 'POST', 
     url: 'data_ajax.php', 
     data: form.serialize(), 
     dataType:'html', 
     success: function(data) {alert('yes');}, 
     error: function(data) { 
     //AJAX request not completed 
     alert('no'); 
     } 
    }); 
    return false; 

     }); 
}); 
+0

Это звучит более многообещающе. – melancia

+0

Это отлично работает! Большое спасибо :) К сожалению, у меня недостаточно репутации, чтобы проголосовать за ваш ответ. – Rhyder

+0

Нет, но я думаю, вы можете поставить «лучший ответ». – L105

Смежные вопросы