Получить индекс выбранной опции в node.js с помощью экспресс - PullRequest
0 голосов
/ 09 февраля 2019

Мне нужно получить индекс выбранного объекта с помощью Express, чтобы утешить его в app.js example.html

<form id="tableForm" action="getJson">
        <select class="example" name="example">
              <option name="table1" value="1">Table 1</option>
              <option name="table2" value="2">Table 2</option>
              <option name="table3" value="3">Table 3</option>
        </select>
    </form>

App.js

var express = require('express'),
app = express();

app.use(express.bodyParser());

 app.get('/', function(req, res){
  res.sendfile('views/index.html');
});

app.post('/getJson', function (req, res) {
   console.log(req.body.example);
});

app.listen(3000, function(){
    console.log('Server running at port 3000: http://127.0.0.1:3000')
});

это приведет к тому, что значение выбранного параметра не будет указываться, а не индекс.

1 Ответ

0 голосов
/ 09 февраля 2019

Вы должны искать атрибут selected в теге <option>.Также атрибут attribute не поддерживается для тега <option>.Вы не можете получить индекс из тега <select>.Вы должны создать хеш-таблицу с индексами и значениями для этого <select>.И тогда, когда вы получите значение, получите индекс для этого значения из хеш-таблицы.Что-то вроде того.Просто для примера.

<form id="tableForm" action="getJson">
    <select class="example" name="example">
          <option value="Berlin">Berlin</option>
          <option value="Moscow">Moscow</option>
          <option value="Kyiv">Kyiv</option>
    </select>
</form>

const selectHashtable = {
    'Berlin': 1,
    'Moscow': 2,
    'Kyiv': 3
};

// for example req.body.example = 'Kyiv';
// you call 
selectHashtable[req.body.example]; // console.log => 3
...