Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Не работает функция по кнопке (https://javascript.ru/forum/jquery/33641-ne-rabotaet-funkciya-po-knopke.html)

vadim5june 30.11.2012 20:37

Цитата:

Сообщение от Dimaz
Без return false будет страница перезагружаться, браузер же воспринимает нажатие по кнопке как передачу данных формы.

тогда поменяйте местами onclick="go(data);return false;"

vadim5june 30.11.2012 20:45

попробуйте так
if(fieldsCount) {
start(data);
var f1=document.createElement('form');
var b1=document.createElement('button');
b1.onclick=function(){start(this.data);return false};
b1.innerHTML='Далее';
b1.data=data;
f1.appendChild(b1);
document.body.appendChild(f1);
}

Dimaz 30.11.2012 20:50

Написал так:
row += '<button onclick="go(data); return false;">Далее</button></form>';

Страница стала перезагружаться.:-?
Пишу так:
row += '<button onclick="return false; go(data);">Далее</button></form>';

Страница не перезагружается.
Попробовал так:
row += '<button onclick="return false; alert('hi!')">Далее</button></form>';

Страница перезагружается и выводятся json данные с сервера:-?
А если так:
row += '<button onclick="alert('hi!'); return false;">Далее</button></form>';
Происходит тоже самое. Перезагружается страница и выводятся json данные с сервера.:blink:

vadim5june 30.11.2012 21:05

Цитата:

Сообщение от Dimaz
Написал так:
row += '<button onclick="go(data); return false;">Далее</button></form>';

Страница стала перезагружаться.

Это потомучто go(data) не срабатывает
alert неприменяйте

Dimaz 30.11.2012 21:33

Функция не работает вообще, даже по первой кнопке, которая передает данные на сервер:
function go(data) {
alert("Ok!");
for (var i in data) {
row += '<b>' + data[i].questions + '</b><Br>';
var ss = data[i].answers.split(',');
for (var i2 = 0; i2<ss.length; i2++) {
row += '<input type="radio" name="id_answer'+i+'" value="' + i2 + '">' + ss[i2] + '<Br>';
}
break;
}
}

$(document).ready(function(){
$('form input:image').click(function() {
var drink = $('input[name=drink]:checked').val();
$.post('save_data.php', {drink: drink},
function(data){
if(data) {
var fieldsCount = data.length;
var row = '';
if(fieldsCount) {
row = '<form>';
go(data);
row += '<button onclick="go(data); return false;">Далее</button></form>';
$('#feeds').html(row);
}
}
  }, "json"); 
return false;
});
});

Что я не так делаю?:-?

vadim5june 30.11.2012 21:43

Цитата:

Сообщение от Dimaz
Что я не так делаю?

У Вас row внутри функции go не определена
var row='';//надо добавить

Dimaz 30.11.2012 22:02

Сделал так, но все равно не работает:
function go(data) {
alert("Ok!");
var row ="";
for (var i in data) {
row += '<b>' + data[i].questions + '</b><Br>';
var ss = data[i].answers.split(',');
for (var i2 = 0; i2<ss.length; i2++) {
row += '<input type="radio" name="id_answer'+i+'" value="' + i2 + '">' + ss[i2] + '<Br>';
}
break;
}
$('#feeds').html(row);
}

А можно ее снова не определять, а как то передать в функцию. Она же уже определена в другой функции.:-?

vadim5june 30.11.2012 22:11

Цитата:

Сообщение от Dimaz
А можно ее снова не определять, а как то передать в функцию. Она же уже определена в другой функции

можно тогда надо писать
function go(data,row) {
ну и обращаться также
-------------
alert("Ok!");
не срабатывает?

Dimaz 30.11.2012 22:17

Цитата:

Сообщение от vadim5june (Сообщение 218845)
можно тогда надо писать
function go(data,row) {
ну и обращаться также
-------------
alert("Ok!");
не срабатывает?

alert как раз таки срабатывает, но цикл не работает, ничего не выводится, что создает цикл.
function go(data, row) {
alert("Ok!");
for (var i in data) {
row += '<b>' + data[i].questions + '</b><Br>';
var ss = data[i].answers.split(',');
for (var i2 = 0; i2<ss.length; i2++) {
row += '<input type="radio" name="id_answer'+i+'" value="' + i2 + '">' + ss[i2] + '<Br>';
}
break;
}
}

$(document).ready(function(){
$('form input:image').click(function() {
var drink = $('input[name=drink]:checked').val();
$.post('save_data.php', {drink: drink},
function(data){
if(data) {
var fieldsCount = data.length;
var row = '';
if(fieldsCount) {
row = '<form>';
go(data, row);
row += '<button onclick="go(data); return false;">Далее</button></form>';
$('#feeds').html(row);
}
}
  }, "json"); 
return false;
});
});

Dimaz 30.11.2012 22:33

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


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