0
我使用XForms的XSLTForms實現構建了一個嚮導,並且遇到了多步表單的問題。當我在form1中完成數據並導航到form2時,form1中輸入的所有數據都消失。爲了導航,我使用觸發器在XSLTForms嚮導中保留值(多步表單)
<xf:trigger>
<xf:label>Next</xf:label>
<xf:action ev:event="DOMActivate">
<xf:load show="replace">
<xf:resource value="form2.xml"/>
</xf:load>
</xf:action>
</xf:trigger>
我想這個問題是我沒有保存模型,所以我增加了一個提交給我的模型:
<xf:submission id="saveData" resource="data.xml" ref="instance('person')" method="put" validate="false" relevant="false" replace="none" />
所以我取代了「下一頁「觸發了提交:
<xf:submit submission="saveData">
<xf:label>Next</xf:label>
<xf:action ev:event="DOMActivate">
<xf:load show="replace">
<xf:resource value="form2.xml"/>
</xf:load>
</xf:action>
</xf:submit>
但仍然有一個問題:導航詢問用戶是否允許寫入文件,我真的想這樣做,在年底,而不是在每一個形式。
除此之外還有其他的選擇嗎?非常感謝!
這裏更好地瞭解一個例子:
<xf:instance xmlns="">
<person>
<name/> <!--Form 01-->
<surname/> <!--Form 01-->
<height/> <!--Form 01-->
<weight/> <!--Form 01-->
<children>
<age/> <!--Form 02-->
<school-name/> <!--Form 02-->
</children>
<has-car/> <!--Form 03-->
<wanna-share-car/> <!--Form 03-->
</person>
</xf:instance>
嗨,阿蘭!您在XSLTForms中所做的是我真正需要的。他們對XForms沒有考慮是一種恥辱。問題是,當我使用我的文章中提到的第一個方法(只是一個具有負載的觸發器)時,我完成了form1,導航到form2,然後從JS訪問模型,但它返回的模型沒有先前輸入的值。我正在訪問這個: var model = window.document.getElementById(「model1」); var inst = model.getInstanceDocument(「person」); var sXML = new XMLSerializer()。serializeToString(inst); console.log(sXML); – gal007 2014-11-04 12:36:23
即使我剛完成form2數據並再次導航到form1(帶有加載操作的另一個觸發器),表單也是空的,並且以前輸入的信息將丟失。 – gal007 2014-11-04 12:38:38
我正在使用相同的文件作爲實例數據,就像這樣: –
gal007
2014-11-04 12:39:41