2016-11-21 3 views
1

Обычно я вижу, что люди используют форму для создания входа:onClick не работает внутри форма?

<form action=""> 
<table> 
    <tr> 
     <td><label for="Fname">First Name</label></td> 
     <td><input type="text" name="Fname" class="form-control" id="fname"></td> 
    </tr> 
    <tr> 
     <td><label for="Lname">Last Name</label></td> 
     <td><input type="text" name="Lname" class="form-control" id="lname"></td> 
    </tr> 
    <tr> 
     <td><label for="address">address</label></td> 
     <td><input type="text" name="address" class="form-control" id="address"></td> 
    </tr> 
    <tr> 
     <td><label for="phone">phone</label></td> 
     <td><input type="text" name="phone" class="form-control" id="phone"></td> 
    </tr> 
    <tr> 
     <td><input type="submit" value="submit" onclick="submit();"></td> 
    </tr> 
</table> 
</form> 

Это делает мою кнопка отправки не работает, но как только я удалить тэг формы его работа:

<table> 
    <tr> 
     <td><label for="Fname">First Name</label></td> 
     <td><input type="text" name="Fname" class="form-control" id="fname"></td> 
    </tr> 
    <tr> 
     <td><label for="Lname">Last Name</label></td> 
     <td><input type="text" name="Lname" class="form-control" id="lname"></td> 
    </tr> 
    <tr> 
     <td><label for="address">address</label></td> 
     <td><input type="text" name="address" class="form-control" id="address"></td> 
    </tr> 
    <tr> 
     <td><label for="phone">phone</label></td> 
     <td><input type="text" name="phone" class="form-control" id="phone"></td> 
    </tr> 
    <tr> 
     <td><input type="submit" value="submit" onclick="submit();"></td> 
    </tr> 
</table> 

Моего JS только вот так:

var Fname= document.getElementById("fname"); 
var Lname= document.getElementById("lname"); 
var Address= document.getElementById("address"); 
var Phone= document.getElementById("phone"); 
var Result= document.getElementById("result"); 


function submit(){ 
    var valueFname=Fname.value; 
    var valueLname=Lname.value; 
    var valueAddress=Address.value; 
    var valuePhone=Phone.value; 
    Result.innerHTML="hello, "+valueFname+" "+valueLname+" good to see you. Your contact number is "+valuePhone+" , and your address "+valueAddress; 
} 

Почему я не могу обернуть весь свой вход внутри формы? нужен ли ему дополнительный код?

+1

Форма будет использоваться для отправки данных в базу данных с использованием метода получения или публикации. – Mahi

ответ

2

его сделать мою кнопку отправка не работал

Нет, ваша кнопка отправить работает нормально. На самом деле проблема заключается в том, что вы видите. Выполняется ваш код JavaScript, но время между показом любого результата и перезагрузкой страницы, потому что вы отправили форму, почти мгновенно.

Итак, ваш JavaScript работает. И ваша форма работает. Все работает.

, но как только я удалить тэг формы его работы

Не совсем. Когда вы удаляете тег form, форма отправки больше не работает. Все, что вы сделали, это предотвратить отправку формы, потому что у вас больше нет формы.

Почему я не могу обернуть весь мой вход внутри формы?

Вы можете. Но это действительно зависит от того, что вы пытаетесь сделать. Если у вас есть форма и вы хотите ее отправить, используйте элемент form. Если вы не хотите подавать что-либо в качестве формы, вы можете оставить ее. Это единственная его цель.

У вас могут быть входные данные на странице где угодно, они не обязательно должны быть в формах. Если вы просто хотите взаимодействовать с ними через JavaScript, вы можете сделать это без элемента form.

+0

*** Выполняется ваш код JavaScript, но время между показом любого результата и перезагрузкой страницы, потому что вы отправили форму почти мгновенно. ***. поэтому, как показать выходной сэр. потому что вы говорите, что это почти мгновенно – GerryofTrivia

+0

@vandi: Разве ваш второй пример не может это сделать? Если вам вообще не нужна форма, просто опустите ее. Вы * можете * предотвратить отправку формы (см. Этот вопрос: http://stackoverflow.com/questions/8664486/javascript-code-to-stop-form-submission), но если вы никогда не захотите отправить форму, тогда кажется разумным не иметь его в первую очередь. – David

+0

@vandi Вы все равно можете использовать форму, но просто запретите ее отправку формы, вызвав метод отправки формы и вернув false. https://jsfiddle.net/kpduncan/0nbjcnw7/ – thekodester

0

Формы создаются для создания HTTP-методов (например, POST или PUT). Итак, если вам нужна информация о входе, участвующая в методе http, вам нужно использовать форму. Если ваша кнопка отправки сделана только для внутренних вещей, не используйте форму.

Немного больше информации: enter link description here

0

Форма будет передавать данные в файл, указанный в действии, и это событие вызвано <input type="submit"/> внутри формы.

Вы можете использовать тег <button> внутри формы, чтобы достичь желаемого.

0

Вам необходимо установить действие для своей формы, оно пустое.
Или вы можете использовать jQuery

+1

Если бы вы навалили вас на старое сообщение, вы одобрили этот http://stackoverflow.com/documentation/review/changes/123007 как документацию, пожалуйста, прочитайте немного до утверждения документации ! Это явно вопрос, а не какая-либо документация ... Отметьте этот комментарий как слишком болтливый, чтобы удалить его потом! – R3uK

+1

Hah! Да, наверное! ;) – R3uK

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