2013-08-06 4 views
1

Я новичок в веб-разработке, я пытаюсь обрабатывать форму submit, используя jquery и javascript.jquery submit(); не работает для firefox

Мои JS

$(document).ready(function() { 

$('#UnitFrom').submit(function (e) { 
alert(); //Works for Chrome and IE... But not in firefox... 
e.preventDefault(); // Form Is not submitted in Chrome and IE.. for firefox it submits the from to same url that i am in.. 
    }); 

}); 

Мой HTML

<html> 
<body> 
<form id="UnitFrom"> 
<input type="submit" id="CalculateUnit" value="Submit" /> 
</form> 

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script> 
<script src="script.js"></script> 
</body> 
</html> 

Любой альтернативный обрабатывать формы, подающие.

+1

@Sergio Это ничем не отличается. По крайней мере, дайте причину, по которой они должны попытаться это сделать. – Ian

+0

'Ошибка: недостаточно аргументов [nsIDOMWindow.alert]' – Ian

+0

Просто для «хорошей практики» добавьте свои .js-файлы на ваши метки заголовка Я стаду, вы должны иметь их в конце вашего тела. –

ответ

-1

Чувак у вас не может быть alert(), а затем e.preventDefault();.

e.preventDefault(); должно быть первым и alert() секунд.

jsfiddle: http://jsfiddle.net/mpatm/

+0

Thanks Alot Работает с $ ('# UnitFrom'). On ("submit", function (e) Not With this .. $ ('# UnitFrom'). Submit (function (e) Есть ли какие-либо технические Разница между этими двумя? –

+4

Это просто некорректно. Конечно, вы можете иметь их в любом порядке. Проблема в том, что Firefox ** требует ** переданного ему аргумента, поэтому генерируется исключение и 'e.preventDefault() 'не выполняет, это не значит, что он не может прийти второй – Ian

+0

Извините, что это тоже работает. Спасибо $ ('# UnitFrom'). submit (function (e) { e.preventDefault();// предотвращать отправку формы по умолчанию alert ('some'); // делать некоторые вещи }); –

2

Put что-то в ваше предупреждение:

alert("TEXT HERE"); 

Если вы проверяете вашу консоль, вы должны увидеть ошибку, подобную этой:

Not enough arguments [nsIDOMWindow.alert]

Когда исключение, выполнение метода заканчивается без вызывая preventDefault, разрешая форму для отправки. Вот почему лучше всего разместить preventDefault в верхней части вашей функции, , но не обязательно. Если это первый и есть исключение, поведение по умолчанию все еще предотвращается.

2

Вы должны написать:

$('#UnitFrom').submit(function (e) { 
    e.preventDefault(); // prevent default form submission 
    alert('some'); // do some stuff 
}); 

ИЛИ

$('#UnitFrom').submit(function() { 
    alert('some'); 
    return false; // prevent form submission 
}); 
+0

Извините, я не могу сделать как ответ ... –

+0

@ShankerPaudel ok np ':)'. Но я думаю, что вы можете проголосовать – thecodeparadox

+1

@ShankerPaudel Вы должны принять этот ответ или JamesMontagne's.** Настоящая ** проблема заключается в том, что Firefox ** требует ** аргумента, переданного в 'alert', поэтому генерируется исключение, и' e.preventDefault(); 'не выполняет – Ian

Смежные вопросы