2014-03-23 3 views
2

Я проверил here и here, но не могу получить свою форму для отправки. (Нуб в Jquery ...)JQuery для отправки формы - укажите ошибку

<html> 
<head> 
    <title>Book Notes Application - Subjects</title> 
    <script src="http://code.jquery.com/jquery-latest.min.js" 
     type="text/javascript"></script> 
    <script> 
     $(document).ready(function(){ 
      $('#subject_id').change(function(){ 
       var subject_id = $(this).val(); 
       //alert(subject_id) 
       //document.forms["choose_subject"].submit(); 
       $('#choose_subject').submit(); 
       //$('form#choose_subject').submit(); 
       //$('form#choose_subject')[0].submit(); 
       //alert(subject_id); 
       //document.getElementById("choose_subject").submit(); 
      }) 
     }) 
    </script> 
</head> 
<body> 
    <!-- CHOOSE SUBJECT --> 
    <FORM action="/books" id="choose_subject" name="choose_subject" method="POST"> 
     Choose a Subject: 
     <select name="subject_id" id="subject_id"> 
       <option value="1">a</option> 
       <option value="2">a2</option> 
     </select><input type="submit" name="submit" value="Choose Subject"/> 
     <BR /> 
    </FORM> 
    <!-- CREATE SUBJECT --> 
    <FORM action="/subjects" id="create_subject" method="POST"> 

     <BR /><BR /> 
     Create a new Subject 
     <input type="text" name="subject_name" /> 
     <input type="submit" name="submit" value="Create Subject" /> 
    </FORM> 
<body> 
</html> 

Я попробовал каждый из этих методов:

1) document.forms["choose_subject"].submit(); 
2) $('#choose_subject').submit(); 
3) $('#choose_subject')[0].submit(); 
4) $('form#choose_subject').submit(); 
5) $('form#choose_subject')[0].submit(); 
6) document.getElementById("choose_subject").submit(); 

Первый и последний результат в «TypeError: document.forms.choose_subject.submit не . функция

Второй и четвертый не ошибка, но они также не делают ничего

Третьи и пятые ошибки вне с «TypeError:. $ (...) [0] .submit не является функцией "

Если я удалю вторую форму, эти результаты сохраняются.

Нажмите кнопку отправки, как ожидается.

+0

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

+1

Можете ли вы опубликовать визуализированный HTML, не так ли. Что-то еще мешает, потому что, как вы видите, базовый jsFiddle, использующий ваш код, работает: http://jsfiddle.net/j08691/66f7Y/. Хотя он все равно будет представлен даже без jQuery. – j08691

+0

@ j08691 Отредактировано визуализированным HTML (это была бутылочка python) –

ответ

2

Измените имя вашего элемента ввода:

<input type="submit" name="submit" value="Choose Subject"/> 

нечто иное, чем «представить». Как .submit() docs state:

Forms and their child elements should not use input names or ids that conflict with properties of a form, such as submit, length, or method. Name conflicts can cause confusing failures.

jsFiddle example

+1

Хорошая работа! Спасибо. –

+2

** + 1 ** Превосходный улов! –

+0

@druciferre - Спасибо. Я бы записал это под «путаными ошибками», на которые ссылаются документы;) – j08691

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