2015-05-25 109 views
1

我想要在啓用/禁用文本框中使用複選框在檢票框架中。在檢票框架中使用複選框啓用/禁用文本框

這裏是我的代碼:

 List<DeliveryFormat> formatChoices = lookupProcessor.getLookupValues(DeliveryFormat.class); 

     //add(new RadioChoice("deliveryFormat", formatChoices, new ChoiceRenderer<DeliveryFormat>("label"))); 

     //Add the check boxes for Delivery format 
     ChoiceRenderer<DeliveryFormat> deliveryFormatShippment = new ChoiceRenderer<DeliveryFormat>("label", "id"); 
     CheckBoxMultipleChoice<DeliveryFormat> deliveryChoices = new CheckBoxMultipleChoice<DeliveryFormat>(
       "deliveryFormat", formatChoices, deliveryFormatShippment); 
     add(deliveryChoices); 
     add(new DeliveryFormatValidator(deliveryChoices)); 
     final WebMarkupContainer deliveryFormatCountryValue = new WebMarkupContainer("deliveryFormatCountry"); 
     deliveryFormatCountryValue.setOutputMarkupId(true); 
     deliveryFormatCountryValue.setOutputMarkupPlaceholderTag(true); 
     add(deliveryFormatCountryValue); 
     deliveryFormatCountryValue.setVisible(DeliveryFormat.DELIVERY_FORMAT_ONE.equals(order.getObject().getDeliveryFormat())); 

     final TextArea<String> sampleTextArea = new TextArea<String>("address.country"); 
     sampleTextArea.add(StringValidator.maximumLength(250)).add(
       InlineErrorFeedback.INSTANCE); 
     sampleTextArea.setRequired(true); 
     sampleTextArea.setOutputMarkupId(true); 
     sampleTextArea.setMarkupId("address.country"); 
     deliveryFormatCountryValue.add(sampleTextArea); 

     deliveryChoices.add(new AjaxFormComponentUpdatingBehavior("address.country") { 
      private static final long serialVersionUID = 1L; 

      @Override 
      protected void onUpdate(AjaxRequestTarget target) { 
       deliveryFormatCountryValue.setVisible(DeliveryFormat.DELIVERY_FORMAT_ONE.equals(order.getObject().getDeliveryFormat())); 
       target.addComponent(deliveryFormatCountryValue); 
     } 
     }); 

,但我無法做到重量過我want..is任何事情錯在我的代碼?

我的HTML頁面:

美國

回答

1

AjaxFormComponentUpdatingBehavior您使用預計要聽,而不是一個HTML元素的標記ID的JavaScript事件的名稱,因爲它提供的。 因此,例如new AjaxFormComponentUpdatingBehavior("change")將是正確的。

在你的情況下,你甚至可以使用OnChangeAjaxBehavior,因爲它正是你試圖聆聽的事件類型。

0

你需要這個說法

deliveryChoices.add(new AjaxFormComponentUpdatingBehavior("address.country") {

改變

deliveryChoices.add(new AjaxFormComponentUpdatingBehavior("onchange") {1

+0

感謝他們兩個,我改變和嘗試,但是從deliveryformat表本身我不是獲取值 – user3734430

相關問題