Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Zend framework 使用Zend_Dojo_表单通过复选框禁用输入字段_Zend Framework_Dojo_Zend Form - Fatal编程技术网

Zend framework 使用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表单完成的 我希望这是有意

我正在扩展使用Zend_Dojo创建的表单,为此我有一项特殊任务,我很难解决

该表单用于购买,由两个地址组组成:
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?