現在我正在研究一個使用「Inline Form Validation Engine 2.6.2」的項目,這是由C.Dugas和O.Refalo提供的jQuery插件(因爲很多人都知道這一點)。最重要的是,我們正在修改許多頁面以使用knockout.js。如何用單選按鈕(需要一個選項)使用jquery-plugin「嵌入式表單驗證引擎」?
現在我的問題: 我usecases確定一個選項的選擇是必要的,它也需要用戶明確選擇選項 - 尤其是「我沒有工作」一個 - 因此,我建議將該選項用作默認選項是不可接受的。
從我經由給定的jquery-插件我的結論是,我的輸入所需要的屬性類型=「無線電」和data_validation_engine =「驗證[需要]基團」的原始文檔中找到。
以下信息我結束了這段代碼創建我的單選按鈕:
<div data-bind="foreach: radioButtonOptions.Company, visible: true" style="">
<div>
<input type="radio" data_validation_engine="validate[required] radio" name="Company" data-bind="value: Value, checked: $root.model.Company, attr: { id: 'Company'+Value() }" data-errormessage-value-missing="Please choose your employer." data-prompt-target="ym-message-Company" value="0" id="Company0">
<label data-bind="attr: { for: 'Company'+Value() }, text:Text" for="Company0">I don't have a job!</label>
</div>
<div>
<input type="radio" data_validation_engine="validate[required] radio" name="Company" data-bind="value: Value, checked: $root.model.Company, attr: { id: 'Company'+Value() }" data-errormessage-value-missing="Please choose your employer." data-prompt-target="ym-message-Company" value="1" id="Company1">
<label data-bind="attr: { for: 'Company'+Value() }, text:Text" for="Company1">Softdrink Company</label>
</div>
<div>
<input type="radio" data_validation_engine="validate[required] radio" name="Company" data-bind="value: Value, checked: $root.model.Company, attr: { id: 'Company'+Value() }" data-errormessage-value-missing="Please choose your employer." data-prompt-target="ym-message-Company" value="2" id="Company2">
<label data-bind="attr: { for: 'Company'+Value() }, text:Text" for="Company2">Food Company</label>
</div>
</div>
這樣,會在3倍很好標記和未選中的單選按鈕結束。然後
我的提交按鈕將檢查形式發送的有效性後前:
$("#submitButton").click(function (event) {
if (!$('#inputForm').validationEngine('validate'))
return false;
// submit per ajax ...
});
,從而防止在驗證失敗時提交。
這適用於任何「validate [required]」 - 我已經在選擇列表和文本框中設置了規則,甚至通過我的DateTime Editor-Template的一個小擴展來分割3個不同輸入中的日期並重新組合它在第四個隱藏的領域。
但由於某種原因 - 我沒有看到 - 它不適用於我的單選按鈕列表。
有沒有人遇到這個插件的類似問題,並能夠解決它或偶然有人有一個好主意如何嘗試找到問題...我不得不承認現在我感覺有點卡住
Thx提前爲任何幫助和/或建議,將導致解決方案!
data_validation_engine是什麼?我認爲驗證規則只應該添加到'class'中。你可以給你檢查的文件嗎? – leonhart
哦,我不得不承認,我只在插件網站的在線文檔中檢查了「...」語法。沒想到data_validation_engine可能是錯的。我在他們給我的js文件中讀取它,並且第一眼看起來有效,因爲它檢查data_validation_engine或包含該規則的類屬性...以及如果data_validation_engine不是原始實現的一部分,那麼可能有人修改它並監督一些東西,現在將嘗試整個事情,並儘快回覆 – Ingo
瞭解它。我在代碼中發現了一些奇怪的東西,並試圖給出一個解決方案。但我不熟悉你的框架,如「淘汰賽」。js',所以它只是一個純驗證引擎解決方案,也許你仍然需要嘗試一下自己。 – leonhart