Zend framework 使用Zend_Dojo_表单通过复选框禁用输入字段
我正在扩展使用Zend_Dojo创建的表单,为此我有一项特殊任务,我很难解决 该表单用于购买,由两个地址组组成:Zend framework 使用Zend_Dojo_表单通过复选框禁用输入字段,zend-framework,dojo,zend-form,Zend Framework,Dojo,Zend Form,我正在扩展使用Zend_Dojo创建的表单,为此我有一项特殊任务,我很难解决 该表单用于购买,由两个地址组组成:payerAddressGroup和deliveryAddressGroup 这两个组是分开的,因此您可以定义两个单独的地址。尽管有很多次,付款人地址与送货地址相同 因此,我想通过添加一个复选框来解决这个问题,该复选框可以禁用deliveryAddressGroup,并且通过复选框的值仅使用payerAddress 表单创建是通过扩展Zend\u Dojo\u表单完成的 我希望这是有意
payerAddressGroup
和deliveryAddressGroup
这两个组是分开的,因此您可以定义两个单独的地址。尽管有很多次,付款人地址
与送货地址
相同
因此,我想通过添加一个复选框来解决这个问题,该复选框可以禁用deliveryAddressGroup
,并且通过复选框的值仅使用payerAddress
表单创建是通过扩展Zend\u Dojo\u表单
完成的
我希望这是有意义的
谢谢
我希望它有意义?您可以观看“checked”属性
dojo.ready(function() {
dijit.byId('shipAsPayCheckBox').watch('checked', function(property, oldValue, newValue) {
dojo.forEach(dijit.findWidgets(dojo.byId('fieldset-deliveryGroup')), function(w) {
w.set('disabled', oldValue);
});
});
});
您的标记应该如下所示
<input id="shipAsPayCheckBox" name="shipAsPayCheckBox" dojoType="dijit.form.CheckBox" value="1" type="checkbox" />
<fieldset id="fieldset-deliveryGroup">
<button dojoType="dijit.form.Button" type="button">Button</button>
<label for="income1">
U.S. Dollars
</label>
<input type="text" name="income1" id="income1" value="54775.53" dojoType="dijit.form.CurrencyTextBox" required="true" constraints="{fractional:true}" currency="USD" invalidMessage="Invalid amount. Cents are required.">
</fieldset>
按钮
美元
您可以查看“checked”属性
dojo.ready(function() {
dijit.byId('shipAsPayCheckBox').watch('checked', function(property, oldValue, newValue) {
dojo.forEach(dijit.findWidgets(dojo.byId('fieldset-deliveryGroup')), function(w) {
w.set('disabled', oldValue);
});
});
});
您的标记应该如下所示
<input id="shipAsPayCheckBox" name="shipAsPayCheckBox" dojoType="dijit.form.CheckBox" value="1" type="checkbox" />
<fieldset id="fieldset-deliveryGroup">
<button dojoType="dijit.form.Button" type="button">Button</button>
<label for="income1">
U.S. Dollars
</label>
<input type="text" name="income1" id="income1" value="54775.53" dojoType="dijit.form.CurrencyTextBox" required="true" constraints="{fractional:true}" currency="USD" invalidMessage="Invalid amount. Cents are required.">
</fieldset>
按钮
美元
谢谢您的回复。但我无法在我现有的项目中成功地实现它<代码>是我的复选框,组:
。甚至可以禁用整个字段集(组)吗?非常感谢您的更正,它在我看来是正确的,但由于某种原因我无法让它运行。我甚至试图用addOnLoad
替换ready
,但运气不好<代码>dojo.addOnLoad(function(){dijit.byId('shipAsPayCheckBox').watch('checked',function(property,oldValue,newValue){dojo.forEach(dijit.findwidget(dojo.byId('fieldset-deliveryGroup'),function(w){w.set('disabled',newValue)};}很抱歉,我的原始代码中有一些语法错误。现在通过在answer.works中添加示例标记进行修复,尽管有一些错误。我已将复选框设置为“选中”从一开始,这应该会禁用输入字段。尽管情况并非如此。当我取消选中复选框时,它们会被禁用。我是否以错误的顺序插入JS?谢谢你的回答。但我无法在现有项目中成功实现它。
是我的复选框,组:
。这可能吗要禁用整个字段集(组)?非常感谢您的更正,它在我看来是正确的,但由于某些原因我无法让它运行。我甚至尝试用addOnLoad
替换ready
,但没有成功!dojo.addOnLoad(function(){dijit.byId('shipaycheckbox')。watch('checked',function(property,oldValue,newValue){dojo.forEach(dijit.findwidget(dojo.byId('fieldset-deliveryGroup'),function(w){w.set('disabled',newValue)});}
很抱歉,我的原始代码中有一些语法错误。现在修复了,在answer.works中添加了示例标记,尽管有一些错误。我已将复选框设置为“checked”从一开始,这应该会禁用输入字段。尽管情况并非如此。当我取消选中复选框时,它们会被禁用。我是否以错误的顺序插入JS?