Невозможно проверить форму с помощью Javascript; Проблемы с перенаправлением PHP?Html

Программисты Html
Ответить
Anonymous
 Невозможно проверить форму с помощью Javascript; Проблемы с перенаправлением PHP?

Сообщение Anonymous »

Я написал простую форму для хобби друга; по сути, мы пытаемся угадать стартовый состав пары команд на чемпионате мира по футболу 2010 года (просто для интереса).

В любом случае, мне нужно проверить следующее форма. Все функции Javascript работают хорошо, потому что если я просто вызываю их вне тега, все работает нормально. Теперь я хочу выполнить базовую проверку на стороне клиента (я знаю, это небезопасно, блабла, но это хобби, поэтому это не имеет значения), а затем передать форму на другую страницу, где PHP (в настоящее время использующий сервер WAMP) 2.0) скрипт соберет данные и сохранит их в базе данных.

Вот форма:

Код: Выделить всё


[img]icons/paises/portugal-flag-icon.png[/img]
 Portugal



Nome
Posição
Escolha
Escolha Anterior



EduardoGuarda-redesEFSPNU NU
BetoGuarda-redesEFSPNU NU
Daniel FernandesGuarda-redesEFSPNU NU
Paulo FerreiraDefesaEFSPNU NU
MiguelDefesaEFSPNU NU
Ricardo CarvalhoDefesaEFSPNU NU
Bruno AlvesDefesaEFSPNU NU
Ricardo CostaDefesaEFSPNU NU
Fabio CoentraoDefesaEFSPNU NU
PepeMédioEFSPNU NU




Теперь немного Javascript:

Код: Выделить всё

 function ValidaTudo()
{
alert('debug: validating...')
if(Valida('PT'))
{
alert('fine!');
return true;
}
else
{
alert('useless validation message but wth');
return false;
}
}
Очевидно, есть и другие функции JavaScript, но:
  • Я не получение любого всплывающего оповещения от этой функции javascript!
  • Страница просто перенаправляется на index.php, поэтому я предполагаю, что это проблема PHP/WAMP ... я перезагружал WAMP несколько раз, но пока безуспешно. Я не перезагружал свой компьютер, хотя думаю, что мне следует это сделать.
Что мне не хватает? Заранее спасибо, ребята!

PS: Да, форма вообще не отправляет данные ни на одну страницу; я знаю это; это не влияет на странное поведение, я пробовал.

Изменить: вот остальные функции проверки. Они используются для проверки того, соблюдает ли пользователь определенные правила (например: выбор ровно 11 игроков; 1 вратаря; как минимум 3 защитников и т. д.). Я передаю пару параметров, потому что в полной форме мы пытаемся угадать игроков 4 команд (Португалия, Испания, Бразилия и Аргентина) — следовательно, 4 формы, каждая со своим идентификатором (на основе идентификатора страны — > {PT, BR, AR, ES}
Вот остальные функции (имейте в виду, что они работают вне формы):

Код: Выделить всё

function Valida (textstring)
{
var error_msg = null;

if(!valida_11(textstring.toUpperCase()))
{
error_msg = 'Erro para a equipa ' + textstring.toUpperCase() + ': deve selecionar apenas 11 jogadores efectivos';
alert(error_msg);
}

if (!valida_gk(textstring.toUpperCase()))
{
error_msg = 'Erro para a equipa ' + textstring.toUpperCase() + ': deve selecionar um e um só 1 guarda-redes efectivo';
alert(error_msg);
}

if (!valida_def(textstring.toUpperCase()))
{
error_msg = 'Erro para a equipa ' + textstring.toUpperCase() + ': deve selecionar um mínino de 3 defesas efectivo';
alert(error_msg);
}

if(error_msg == null)
return true;
else return false;
}

function valida_11(tbl)
{
var ef = 0;
var input_list = document.getElementsByName('escolha' + tbl);

for(var i = 0; i < input_list.length; i++)
{
var a = input_list[i].value;
if(a == "EF")
ef++;
}

if (ef == 11)
return true;
else return false;
}

function valida_gk(tbl)
{
var ef = 0;
var gks = conta_gks(tbl);
var input_list = document.getElementsByName('escolha' + tbl);

for(var i = 0; i < gks; i++)
{
var a = input_list[i].value;
if(a == "EF")
ef++;
}

if (ef == 1)
return true;
else return false;
}

function valida_def(tbl)
{
var defs = conta_defs(tbl);
var gks = conta_gks(tbl);

var ef = 0;
var input_list = document.getElementsByName('escolha' + tbl);

for(var i = gks-1; i < gks + defs; i++)
{
var a = input_list[i].value;
if(a == "EF")
ef++;
}

if (ef >= 3)
return true;
else return false;
}

function conta_defs(tbl)
{
var defs = 0;
var tabela = document.getElementById('tabela_' + tbl);

for(var i = 1; i < tabela.getElementsByTagName("tr").length; i++)
{
var linha = tabela.getElementsByTagName("tr")[i];
var celula = linha.getElementsByTagName("td")[1];

if(celula.innerHTML == "Defesa")
defs++;
}

return defs;
}

function conta_gks(tbl)
{
var gk = 0;
var tabela = document.getElementById('tabela_' + tbl);

for(var i = 1; i < tabela.getElementsByTagName("tr").length; i++)
{
var linha = tabela.getElementsByTagName("tr")[i];
var celula = linha.getElementsByTagName("td")[1];

if(celula.innerHTML == "Guarda-redes")
gk++;
}

return gk;
}
Редактирование 2: То же самое происходит и в других браузерах, например IE 7.
Редактирование 3: Перезагрузил компьютер, но проблема осталась... :/

Хорошо, мне удалось разместить страницу в сети @: http://testing.freeoda.com/teste.html
Попробуйте. Здесь я получаю ошибку 404; никакая функция JS не вызывается....

Подробнее здесь: https://stackoverflow.com/questions/297 ... ect-issues
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Html»