2012-01-19 5 views
0

У меня есть код на моем сайте, который не работает, и я не мог понять, почему ...Javascript Form Submit Failure

Вот код:

if (self.location.href == top.location.href) { 
    document.fastform.submit(); 
document.getElementById(fastform).submit(); 
} 

сейчас если я добавлю что-то, отличное от формы, представить в оператор if, он работает нормально. Это просто, когда я делаю форму отправить код никогда не работает ...

Вот код формы:

<form id="fastform" name="fastform" ACTION="/amember.php"> 
<INPUT TYPE="text" NAME="myurl" ID="myurl"> 
<input type="submit" /> 
</form> 

Спасибо за помощь, ребята!

До сих пор ни одно из предложений не работало, я пробовал несколько разных вариантов, например, кавычки вокруг быстрой формы в getelementbyid. Вот моя вся программа javascript:

Спасибо за предложения!

Хорошо, поэтому, используя некоторые из предложенного кода, я получил его работу. Проблема заключалась в том, что оператор if не выполнялся в нужное время, я перемещал все вокруг так, чтобы оператор if выполнялся LAST, и все начало работать. Вот полный (функционирование) код:

<script type="text/javascript"> 

function geturl() { 
var locate = document.location 
document.fastform.myurl.value = locate 
getmeoutofhere() 
} 
window.onload = geturl; 

function getmeoutofhere() { 
    if (self.location.href == top.location.href) { 
    document.getElementById('fastform').submit(); 
    } 
} 
</script> 
<form id="fastform" name="fastform" ACTION="/amember.php" style="visibility:hidden;"> 
<INPUT TYPE="text" NAME="myurl" ID="myurl" /> 
<input type="submit" /> 
</form> 

ответ

0

Вы можете использовать это в вашей функции:

вар F = document.forms.fastform; f.submit();

и он отлично работает

+0

Это предложение не сработало ... добавлено в мой первоначальный пост всю программу. –

+0

записи выше код в Уре, если блок и я проверил это работает нормально –

+0

Я использую этот код: Demo <тип скрипта =" текст/JavaScript "> \t функция запуска() \t { \t \t если (self.location.href == top.location.href) \t \t { \t \t \t var f = document.forms.fastform; \t \t \t f.submit(); \t \t} \t} \t \t \t <форма ID = "fastform" имя = "fastform" ДЕЙСТВИЕ = "/ amember.php"> \t \t \t <вход type = "button" onclick = "run();"> \t –

0
document.getElementById('fastform').submit(); 

ИЛИ

var frm = document.getElementById('fastform'); 
frm.submit(); 
0

Я не уверен, если это проблема, но есть, конечно, одна проблема с линией:

document.getElementById(fastform).submit(); 

Проблема, я думаю, есть t hat, вы пытаетесь получить элемент по его id, но для getElementById() требуется строка с кавычками, если вы уже не присвоили строку переменной, представленной fastform. Поэтому она должна быть:

document.getElementById('fastform').submit(); 

или:

var fastform = 'fastform'; 
document.getElementById(fastform).submit(); 

Кроме того, вы, кажется, пытается работать с переменной fastform до того, как кажется были установлены, в первую , содержащейся в заявлении if:

document.fastform.submit(); 

I «D предполагают внесение изменений в сценарии немного, чтобы быть что-то вроде:

if (self.location.href == top.location.href) { 
    var fastform = document.getElementById('fastform'); 
    fastform.submit(); 
} 

Ссылки: