В форме, когда пользователь нажимает кнопку, он показывает всплывающее окно - в котором я приму ввод от пользователя - который должен иметь тип ID (http://books.xmlschemata.org/relaxng/ch19-77151.html).
Когда пользователь нажимает кнопку «Сохранить», он отправляет событие, которое добавляет извлеченный ввод из всплывающего окна в экземпляр формы, если он имеет тип идентификатора.
Я не уверен, как это сделать?
Я пытался использовать bind и submit, то есть у меня нет конечной точки для публикации, поэтому, когда ошибка не относится к типу validation-error, я изменяю требуемый экземпляр.
Но при этом отправляется ненужный почтовый запрос, которого я хочу избежать.
Метод, который я попробовал, который отправляет ненужный запрос POST:
<xf:submission id="save-step" method="post" replace="none" ref="instance('addId')" >
<xf:action ev:event="xforms-submit-error" if="event('error-type')!='validation-error'">
<xf:insert ev:event="DOMActivate" nodeset="instance('addId')/step" at="last()" position="after" origin="instance('addStepId')/step"/>
<xf:dispatch ev:event="DOMActivate" name="popup-action-close" targetid="ModelId" />
</xf:action>
</xf:submission>
<xf:bind nodeset="instance('addStepId')/step/name" type="xsd:ID" constraint=" (count(instance('addId')/step/name[.=instance('addStepId')/step/name]) =0)" required="true()"/>
Я хочу, чтобы это было сделано без представления, как это:
<xf:action ev:event="save-step" >
<xf:insert nodeset="instance('addId')/step" at="last()" position="after" origin="instance('addStepId')/step" />
<xf:dispatch name="popup-action-close" targetid="ModelId" />
</xf:action>
<xf:bind id="checkStepName" nodeset="instance('addStepId')/step/name" type="xsd:ID" constraint=" (count(instance('addId')/step/name[.=instance('addStepId')/step/name]) =0)" required="true()"/>
Но я не уверен, как прикрепить xform bind к действию xform!