отправить данные формы и показать на сервере

0

У меня простая форма, я просто хочу посмотреть, какие поля отправляются на сервер. Но на стороне сервера я получаю значение поля <input type="text">. Почему сервер не может получить значение <select> и <input type="file"/>?

HTML:

<form action="http://localhost:8100/" method="POST">
        <div>
            <select>
                <option value="op1" selected="selected">Option1</option>
                <option value="op2">Option2</option>
            </select>
        </div>

        <div>
            <input type="file" value="select a file"/>
        </div>

        <div>
            <label>Your Hero: </label><input type="text" name="hero" />
        </div>

        <input type="submit" value="submit" />
    </form>

Сервер:

var http = require("http");

http.createServer(function(req, res) {
        if (req.method == 'POST') {
            var body = '';
            req.on('data', function (data) {
                body += data;
                console.log(body);
            });
            req.on('end', function () {
                console.log("request data complete");
            });
            res.end("post request");
        } else {
            res.end("get request");
        }

    }).listen(8100);
Теги:
forms

2 ответа

1
Лучший ответ

Ваш select и file input элементов отсутствует name атрибута. Все элементы формы, которые вы хотите отправить, должны иметь уникальный атрибут name. атрибут name будет идентификатором для значения элемента, когда данные были отправлены через POST и GET.

Вы можете прочитать об этом в спецификациях здесь: http://www.w3.org/TR/html5/forms.html#naming-form-controls:-the-name-attribute

1

Я думаю, вы просто забыли атрибуты "name" в этой форме. Добавьте его, и он должен работать. ура

Ещё вопросы

Сообщество Overcoder
Наверх
Меню