2014-06-07 2 views
0

Im пытается отправить форму через javascript после проверки определенного поля.Javascript post form

им с помощью

function doValidate(){ 
     var error = false; 
     var nr = document.getElementById('number').value; 
    if (nr > '10'){ 
     document.getElementById('number').className += " red"; 
     error = true; 
    } 
    if (error = false) { 
     document.forms["new_qs"].submit(); 
    } 
} 

, но когда ошибка является ложным, просто ничего не происходит! Я осмотрел сайт с помощью firebug, ошибка ложна, document.forms ничего не делает. Но в онлайн-учебниках это работает очень хорошо.

Вот полная скрипка с сайта http://jsfiddle.net/S7G9J/25/

Что может быть проблема/решением?

+1

if (error == false) – jeff

+0

Вы также можете просто использовать 'if (! Error)'. – Wayne

ответ

3
if (error = false) { 

В вышесказанном вы используете оператор присваивания. =. Используйте == для сравнения

Также вы сравниваете строку вместо цифр.

Попробуйте это:

function doValidate(){ 
    var error = false; 
    var nr = Number(document.getElementById('number').value); 
    if (nr > 10){ 
     document.getElementById('number').className += " red"; 
     error = true; 
    } 
    if (error === false) { 
     document.querySelector('[type="button"]').submit(); 
    } 
} 
+0

все еще не работает ... http://jsfiddle.net/S7G9J/34/ – HKK

+0

@HKK: Вам нужно сравнивать числа, а не строки. Используйте '> = 10'. И тогда, конечно, в вашем jsFiddle нет формы с именем 'new_qs'. –

+0

Я пробовал, еще не повезло на отправке ... – HKK

0

Ошибка заключается в строке, в которой вы передаете() формы.

В вашей скрипке идентификатор вашей формы - «тест». В вашем javascript форма, на которую вы ссылаетесь, должна иметь идентификатор «new_qs». Однако такой формы нет, поэтому нет submit().

document.forms [0] .submit() будет отправлять первую форму в порядке появления в вашем HTML-коде. Итак, попробуйте следующее:

function doValidate(){ 
    var error = false; 
    var nr = document.getElementById('number').value; 
if (nr > '10'){ 
    document.getElementById('number').className += " red"; 
    error = true; 
} 
if (error == false) { // need double equal here 
    document.forms[0].submit(); 
} 
}