2014-04-30 42 views
1

嘿,我有一個數據輸入模塊。確保2個字段相同

我希望確保兩個字段在允許保存前是相同的。如果它們不匹配(類似於網站在提交之前確認電子郵件的方式是否相同),我希望它能說出「確保這兩個字段匹配」並且不保存,直到它們完成。

我該怎麼做?這是阻止我將這個模塊推出的唯一因素。

謝謝!

回答

1

你可以很容易地把它關掉。

比方說,你要確認以下兩個字段匹配:

username_c 

username_compare_c 

創建模塊目錄中的JavaScript文件名爲force_username_compare.js和下面的代碼添加到它:

addToValidateComparison('EditView', 'username_c', '', true, 'Compare Test', 'username_compare_c'); 

然後,你需要從視圖吐出那個js。編輯你的模塊。假設你沒有自定義設置view.edit還創建以下文件,並添加以下代碼: 定製/模塊/ YOUR_MODULE_NAME /視圖/ view.edit.php

class YOUR_MODULE_NAMEViewEdit extends ViewEdit 
{ 
    public function display() 
    { 
     // make sure it works in the subpanel too 
     $this->useForSubpanel = true; 

     // definitely need to call the parent method 
     parent::display(); 

     // make sure to echo this out AFTER parent::display() call 
     echo '<script type="text/javascript" src="custom/modules/YOUR_MODULE_NAME/force_username_compare.js"></script>'; 
    } 
} 

的addToValidateComparison會照顧一切爲您的辛勤工作,包括防止記錄如果字段不匹配保存。 '比較測試'參數是當字段不匹配時顯示的消息。繼續並將其改爲任何你喜歡的。

最後注意:這是一個很好的文章,介紹如何在你的視圖中獲得一些javascript:https://www.atcoresystems.com/blog/adding-custom-javascript-to-a-sugarcrm-view。我使用視圖控制器的方法,因爲我們不希望我們的JavaScript運行,直到字段出現在DOM後,我不想寫關於是否jQuery,因此document.ready方法是容易訪問。