2014-03-31 67 views
0

驗證在號碼字段忽略NaN的我有一個採購訂單的形式,我需要自動計算任何輸入的值(合計,稅收等)。問題是,InfoPath表單中的這些字段中的某些字段具有其默認值作爲此目的的計算。很好......但是當一條線是空白的時候會出現這個問題(表格中有12條線,但並不是所有的線都可以用於一個PO)。如果一行是空的,那麼計算的字段當然會顯示'NaN'。例如,「數量」和「價格」字段相乘以生成總數,然後總數乘以稅率百分比以獲得淨總數。爲了便於理解,我附上了一張屏幕截圖: Screenshot of form對InfoPath表單

這是很好的時候,它是第1行,因爲第1行肯定會被填入,而不是其他人。看到第6行作爲導致這個問題的演示。我已經嘗試過沒有默認和'0'在靜態字段,但都不工作,除非我把一個整數(然後混淆用戶)。表單驗證堅持認爲數字在數字字段中(不是'NaN'),那麼是否有任何方法可以忽略表單驗證中的問題,或者找到解決此問題的另一種解決方法?

作爲參考,是輸入計算作爲這些缺省值如下: 數量:0 稅前價:Line6Quantity * Line6Price VAT:每項0 價格(Line6Total - Line6SubTotal)/ Line6Total 總共:Line6SubTotal *(1 + Line6VAT)

正如您所看到的,增值稅/行總計字段設計爲可互換,因此人們可以填寫/或。表單正在從SharePoint中填充。

希望這一切都有道理;非常感謝。

回答

0

您可以通過檢查在提交表單之前調用的函數值,使一個簡單的解決方法。因此,在您的提交表單中添加一個onClick =「checkForNaN()」函數。

的isNaN()函數應該派上用場,因爲你通過掃描輸入框,以檢查他們是否評估爲NaN。如果是這樣,只需將它們更改爲表單驗證代碼可以接受的內容即可。

+0

問題在於,提交後這些值仍然會被改變。當預算持有者審覈批准時,他們可能會對隨機領域爲什麼會以有意義的價值完成而感到困惑,但沒有關於該項目的信息。除非我錯過了什麼? –

+0

解決這個問題的一種方法是對那些NaN可能的輸入框使用隱藏字段,然後使用該onClick函數填充隱藏字段。誠然,有點不雅,但會避免重新輸入表單域的需要。 – Hektor

+0

但是,如果使用表格的所有行,那麼他們*需要使用的時間相同。理想情況下,我希望能夠說出Line5Description是否爲空,然後忽略對所有其他Line5字段的驗證。 –