Ответ 1
У вас есть поле с именем submit
, это clobbers метод submit
формы (со ссылкой на DOM node для поля), который jQuery зависит от его собственного метода submit
.
Переименуйте его.
У меня есть следующий код HTML:
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>IT-Services Umfrage - Fragen</title>
<link rel="stylesheet" type="text/css" href="/IT/umfrage/../../style.css" />
<link rel="stylesheet" type="text/css" href="/IT/umfrage/css/umfrage.css" />
<script type="text/javascript" src="/IT/umfrage/../../inc/jquery-1.4.2.js"></script>
<script type="text/javascript" src="/IT/umfrage/js/umfrage.js"></script>
</head>
<body id="page-show">
<div class="ueberschriftsbalken"><span>IT-Services Umfrage - Fragen</span></div>
<br />
<div id="content">
<form action="/IT/umfrage/Umfrage/save" method="post" id="umfrageForm">
<div class="frage radio">
<p>1. Wie professionell empfinden Sie das Auftreten der IT-Service Anlaufstelle?</p>
<label for="frage1_1"><input type="radio" name="frage1" id="frage1_1" value="1" /> Lausig</label><br />
<label for="frage1_2"><input type="radio" name="frage1" id="frage1_2" value="2" /> Schwach</label><br />
<label for="frage1_3"><input type="radio" name="frage1" id="frage1_3" value="3" /> Durchschnittlich</label><br />
<label for="frage1_4"><input type="radio" name="frage1" id="frage1_4" value="4" /> Gut</label><br />
<label for="frage1_5"><input type="radio" name="frage1" id="frage1_5" value="5" /> Hervorragend</label>
</div>
<input type="submit" value="Antworten absenden" name="submit" id="submitbutton" />
</form>
</div>
</body>
</html>
При нажатии на кнопку submit или при нажатии клавиши ввода форма отправляется. Но когда я пытаюсь $('#umfrageForm').submit()
, $('form').submit()
или что-то подобное, ничего не происходит. В Firebug функция возвращает путь DOM к элементу формы.
В чем может быть проблема, препятствующая отправке формы?
У вас есть поле с именем submit
, это clobbers метод submit
формы (со ссылкой на DOM node для поля), который jQuery зависит от его собственного метода submit
.
Переименуйте его.
Я думаю, что вы запускаете событие отправки перед загрузкой DOM, потому что, если я его попробую, этот код работает:
$(document).ready(function(){
// Submit handler, to prove everything works fine
$('#umfrageForm').submit(function(){
alert('hi');
return false;
});
// Fire the submit event
$('#umfrageForm').submit(); // alerts 'hi'
});
Смотрите: jsFiddle
да, когда у вас есть элементы ввода с именем "submit", вы найдете $('# formID'). submit(), чтобы не вести себя так, как ожидается. Просто замените имя поля ввода (может быть кнопкой отправки) на что-то более актуальное.
Я знаю, что этот пост старый, у меня была такая же проблема, и я подумал, что должен опубликовать мои выводы.
У меня была такая же проблема. Ваш код должен работать, если вы добавляете файл Java- script, как вы показываете. Тем не менее, я подозреваю, что ваш код является частью более крупного html-документа. Проблема возникает при загрузке части тела вашего html-документа в другой html-документ без включения Java-script -функций в поддоку (поскольку они включены в родительский документ). Тогда это не сработает. Вы должны включить файл Java- script также в поддоку.