disable/enable text boxes by using wicket

1.1k views Asked by At

my requirement is based on group of checkbox checks shipping address fields will be disable or enabled.

make clear my requirement:Wicket id:"nonDigital" having 6 check boxes.if any one of check box is checked then only shipping address section is enabled and then only user can enter value.

Here is my code

My HTML code:

 <fieldset class="deliveryFormats">
          <h2 class="sectionHeading">Delivery Formats</h2>
          <span class="required">* Required Field</span>
         <br/>
            <div class="leftDiv">
          <label>Non-digital</label>
          <div class="radioLabel" wicket:id="nonDigital" >
            <label>
             <input class="checkbox" type="checkbox" name="formatType" />Beta SP NTSC
            </label>
           </div><!--  /.radioLabel non digital -->
</fieldset>
<fieldset class="shippingAddress" style="border-bottom: 0px;" >
           <h2 class="sectionHeading">Shipping Address</h2>
          <table class="form">
            <tbody>
              <tr>
                <th class="fieldName" scope="row">Company</th>
                <td class="fieldEdit">
                  <input class="organization" type="text" wicket:id="address.organization"/>
                </td>
              </tr>
              <tr>
                <th class="fieldName" scope="row">Address 1</th>
                <td class="fieldEdit">
                  <input class="long" type="text" wicket:id="address.line1">
                </td>
              </tr>
              <tr>
                <th class="fieldName" scope="row">Address 2</th>
                <td class="fieldEdit">
                  <input class=" long" type="text" wicket:id="address.line2">
                </td>
              </tr>
              <tr>
                <th class="fieldName" scope="row">Address 3</th>
                <td class="fieldEdit">
                  <input class="long" type="text" wicket:id="address.line3">
                </td>
              </tr>
              <tr>
                <th class="fieldName" scope="row">City</th>
                <td class="fieldEdit">
                  <input class="long" type="text" wicket:id="address.city"/>
                </td>
              </tr>
              <tr>
                <th class="fieldName" scope="row">State</th>
                <td class="fieldEdit">
                  <input class="long" type="text" wicket:id="address.state"/>
                </td>
              </tr>
              <tr>
                <th class="fieldName" scope="row">Postal Code</th>
                <td class="fieldEdit">
                  <input class="postalcode" type="text" wicket:id="address.postalCode"/>
                </td>
              </tr>
            </tbody>
          </table>

Java code:

List<DeliveryFormat> formatChoices = lookupProcessor.getLookupValues(DeliveryFormat.class);
List<DeliveryFormat> nonDigital = new ArrayList<DeliveryFormat>();
List<DeliveryFormat> digital = new ArrayList<DeliveryFormat>();

            Iterator<DeliveryFormat> nondigitalIterator = formatChoices.iterator();
            while(nondigitalIterator.hasNext()){
                DeliveryFormat df = nondigitalIterator.next();
                if(df.getLabel().equals("Audio Bundle") || df.getLabel().equals("XDCAM file")|| df.getLabel().equals("FTP")){
                    digital.add(df);
                }
                else
                {
                    nonDigital.add(df);
                }
            }

         //Add the check boxes for Delivery format for digital List

          // add(new CheckBoxMultipleChoice<DeliveryFormat>("nonDigital", nonDigital, new ChoiceRenderer<DeliveryFormat>("label")));
         ChoiceRenderer<DeliveryFormat> deliveryFormatShippment = new ChoiceRenderer<DeliveryFormat>("label", "id");
            CheckBoxMultipleChoice<DeliveryFormat> nonDigitalDelivery = new CheckBoxMultipleChoice<DeliveryFormat>(
                    "nonDigital", nonDigital, deliveryFormatShippment);

            CheckBoxMultipleChoice<DeliveryFormat> digitalDelivery = new CheckBoxMultipleChoice<DeliveryFormat>(
                    "digital", digital, deliveryFormatShippment);
            add(nonDigitalDelivery);
 /*final CheckBox test = new CheckBox("nonDigital");
            test.setOutputMarkupId(true);

            nonDigitalDelivery.add(new AjaxEventBehavior("onKeyUp")
            {

                *//**
                 * 
                 *//*
                private static final long serialVersionUID = 1L;

                @Override
                protected void onEvent(AjaxRequestTarget target) {
                    // TODO Auto-generated method stub

                    test.setEnabled(false);
                    target.addComponent(test);
                }

            });*/
1

There are 1 answers

6
thg On

You should try to enable the markupid to be written:

textArea.setOutputMarkupId(true);

and then add this component to the target:

textArea.setEnabled(false):
target.add(textArea);