цикл express / pug для генерации таблицы с формой на строку - PullRequest
0 голосов
/ 14 декабря 2018

Я только начинаю с node.js / express / pug, но я не могу заставить его создать форму для строки.

У меня есть этот шаблон

mixin listentry(alternate,name,exposureTime,manufactor,usecount,lastused)
tr()
    | <form action='' method='post'>
    td()
        input(type='text',name='name',readonly,class='w100',value=name)
    td()
        input(type='number',name='exposureTime',class='w75',value=exposureTime)
    td()
        input(type='text',name='manufactor',class='w100',value=manufactor)
    if usecount == ""
        td()
        td() never
    else
        td() #{usecount}
        td() #{lastused}
    td() Delete Update
    | </form>


- var alternate = false;
each profile,name in profiles
    +listentry(alternate,name,profile.exposureTime,profile.manufactor,profile.usecount,profile.lastused)
    - var alternate = !alternate;

это производит:

<tr>
   <form>....</form>
   <td>.... ect

но я ожидал, что это сделает

<tr>
   <form.....
   <td>.... ect
   </form>

Что я делаю не так?

Независимо от того, что я пытаюсь, я не могу заставить его создать форму, содержащуюtd's ряда, следовательно, я не делаю ввод в форму.

Я и я пытаюсь не хотеть иметь одну большую форму, содержащую все строки.

edit: новая версия с формой () но все равно не дают желаемого результата

mixin listentry(alternate,name,exposureTime,manufactor,usecount,lastused)
   tr()
     form(action='', method='post')
        td()
            input(type='text',name='name',readonly,class='w100',value=name)
        td()
            input(type='number',name='exposureTime',class='w75',value=exposureTime)
        td()
            input(type='text',name='manufactor',class='w100',value=manufactor)
        if usecount == ""
            td()
            td() never
        else
            td() #{usecount}
            td() #{lastused}
        td() Delete Update

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Внешне Шон прав, вы не можете больше иметь форму в каждой строке.

, поэтому решение состоит в том, чтобы использовать jquery

Создать таблицу HTML, в которой каждый TR - это ФОРМА.

0 голосов
/ 14 декабря 2018

Это можно легко исправить, используя стандартные элементы pug вместо экранированного HTML (с |) и убедившись, что все, что вы хотите ВНУТРИ формы, имеет отступ на два пробела после элемента формы.

  form(action='' method='post')
    td()
      input(type='text',name='name',readonly,class='w100',value=name)
    td()
      input(type='number',name='exposureTime',class='w75',value=exposureTime)
    td()
      input(type='text',name='manufactor',class='w100',value=manufactor)
    if usecount == ""
      td()
      td() never
    else
      td() #{usecount}
      td() #{lastused}
    td() Delete Update
...