Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Не работает аякс в jQuery Form (https://javascript.ru/forum/jquery/13890-ne-rabotaet-ayaks-v-jquery-form.html)

Ticksy 19.12.2010 00:09

Не работает аякс в jQuery Form
 
Из-за чего не работает jQuery 1.4.2 с плагином jQuery Form 2.52? Данные отправляются обычным методом, хотя мне нужен аякс.

<script>AjaxForm('#myform', '#display');</script>
<form action="/test.php" method="post" id="myform">
	<input name="name" type="text">
	<input type="submit" value="Оправить">
	</form>
	<div id="display"></div>


function AjaxForm(form_id, output) {
	$(document).ready(function() { 
	var options = { 
        target:        output,   // target element(s) to be updated with server response 
        beforeSubmit:  AjaxWindow(true),  // pre-submit callback 
        success:       AjaxWindow(false)  // post-submit callback 
 
        // other available options: 
        //url:       url         // override for form's 'action' attribute 
        //type:      type        // 'get' or 'post', override for form's 'method' attribute 
        //dataType:  null        // 'xml', 'script', or 'json' (expected server response type) 
        //clearForm: true        // clear all form fields after successful submit 
        //resetForm: true        // reset the form after successful submit 
 
        // $.ajax options can be used here too, for example: 
        //timeout:   3000 
    }; 
 
    // bind form using 'ajaxForm' 
    $(form_id).ajaxForm(options); 
}


Может с помощью универсальной функции не правильно (зато удобнее..), но сделал даже так:

$(document).ready(function() { 
	$('#myform').ajaxForm({
	target:        '#display',   // target element(s) to be updated with server response 
        beforeSubmit:  AjaxWindow(true),  // pre-submit callback 
        success:       AjaxWindow(false)  // post-submit callback 
	}); 
	});

Ну не работает и все.

x-yuri 19.12.2010 06:22

<script>console.log($('#myform'), $('#display'));</script>
<form action="/test.php" method="post" id="myform">
	<input name="name" type="text">
	<input type="submit" value="Оправить">
	</form>
	<div id="display"></div>
<script>console.log($('#myform'), $('#display'));</script>

и смотрим в консоль firebug'а

Ticksy 19.12.2010 10:35

Вроде нашел в чем проблема: оказалось, что JS не понял параметры функции по умолчанию. Вообще они в нем существуют?

Я говорю про это:

function php($var = true) {}

static void csharp(bool var = true) {}

UPD:
Как я понял все должно быть вида
$(document).ready(function() { 
	$('#myform').ajaxForm({
	target:        '#display',   // target element(s) to be updated with server response 
        beforeSubmit:  AjaxWindow(true),  // pre-submit callback 
        success:       AjaxWindow(false)  // post-submit callback 
	}); 
	});

Именно этот код и заработал, а не моя функция :(. Возможно ли работа этого кода в виде функции, которую я написал?

x-yuri 19.12.2010 17:38

сложно судить по коду который ты привел. Я сначала подумал, что ты пытаешься получить доступ к элементам до того, как они начали свое существование. Выполнение кода в $(document).ready(function(){ ... }) или просто в $(function(){ ... }) решает эту проблему

по поводу параметров по умолчанию... в js таких нету, но он нормально относится и к наличию лишних параметров, и к отсутствию указанных параметров

ты можешь ссылку на страничку дать?

WitNt2000 19.07.2011 12:55

Ticksy,
День добрый, коллега! Вы победили проблему с плагином jquery.form.js? И если да, то как? Очень меня это интересует. А точнее уже раздражает. Бьюсь уже 3-й день над ней.


Часовой пояс GMT +3, время: 00:36.