2011-09-27 28 views
0

不幸的是,這並不像我希望的那樣枯燥無味。在過去的幾周裏,我一直在研究jQuery與CRM的使用。儘管風格改變非常好,但我找不到任何接近業務邏輯的例子。使用jQuery檢索表單值

例如,今天我需要提醒瀏覽器是否有4個字段中的一個爲空。兩個是日期字段,一個是選擇列表,另一個是複選框(位)。我認爲調用$(「#formElement」)。val()會得到這個值,並且在某些情況下它會這樣做,比如在我將它解析爲int之後的選擇列表。但是,日期字段總是返回一個空字符串。

通過查看CRM表單HTML,我發現「#formElement」並不總是CRM表單元素的輸入ID。例如,日期字段的ID =「DateTime」(或類似的東西)。此時,我曾想過我需要創建一個過濾器,它將包含#formElement的表作爲ID並查找該表中第一個輸入的值,但在此時使用crmForm.all.formElement .DataValue看起來更簡單。

我確定這裏有人爲此提供了一個解決方案(也許有人解釋如何編寫CRM表單來幫助使用過濾器),而且它真的很臭,無法安裝Internet Explorer的附加組件工作。感謝任何和所有的幫助。

回答

0

對於任何正在尋找答案的人,我已經想出了一個可管理的程度。不幸的是,我還沒有能夠使用CSS選擇器來縮短屬性名稱,但我已經能夠利用jQuery來縮短時間。如果你想使用jQuery的一個CRM 4屬性,它看起來像這樣:

$(crmForm.all.new_attribute).bind("click", function() { ClickFunction(); }); 

我真的開槍了鏈接,因爲有很多次,當我需要一個空場,禁用它,然後強制它提交。魔法一點點這樣的:

crmForm.all.new_attribute.DataValue = null; 
crmForm.all.new_attribute.Disable = true; 
crmForm.all.new_attribute.ForceSubmit = true; 

變爲:

crmForm.all.new_attribute.dataValue().disable().forceSubmit(); 

我希望這有助於一些你們的了!

0

使用jQuery來選擇表單本身(通過它的ID或$(表單)),然後迭代它的輸入文本字段的children。我以前沒有爲表單做過這件事,但它可能適用於您。

+0

這是一個好主意,但我不得不手動知道每個字段是什麼索引。仔細看看它,似乎無論如何,它總是會落入_table#formElement input_,並且輸入可能有也可能沒有它自己的ID。我現在還沒有給它一個鏡頭 - 我們爲我們的實體提供了大量的JS文件(誠實地說,對於4行代碼,它不值得插入jQuery),但是我會在我的下一個CRM項目中給它一個鏡頭。 – EHorodyski

+0

您不必手動執行此操作。還有另外一個jQuery方法[find](http://api.jquery.com/find/),它返回一個特定類型的所有子類。然後你可以迭代它們,或者每個ID都有一個開關來處理內容。 – Primus202

+0

這也行不通。 「常規」文本框的ID設置爲表單元素的名稱,但其他文本框(針對日期等特殊數據)具有與其表單元素名稱不匹配的特殊ID。我也不能只查找table#formElement>輸入,因爲它們中的一些是。 – EHorodyski