2011-09-27 81 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