2014-11-20 1 views
1

Если у меня есть переключатель с тремя параметрами A, B, C, и у меня есть поле ввода, релевантность которого зависит от того, имеет ли радиокнопка значение A. Тогда: Если я выберу значение A в переключателе, поле ввода видно, и я могу добавить значение. НО, когда я меняю переключатель на B, поле ввода скрыто, но значение все еще присутствует (если я снова выбираю A, я могу видеть значение)Как удалить содержимое элемента, если это не имеет значения?

Можно ли удалить значение по событию?

ответ

2

Проще всего это сбросить значение с помощью calculate, которое вы можете разместить в том же xf:bind, который вы используете, чтобы скрыть ввод, когда выбрано значение B, как это сделано в примере ниже. Для форм, созданных с помощью Form Builder, существует RFE, чтобы это поведение было реализовано из готового продукта, но перезаписало значение только при сохранении/отправке, поэтому, если вы переключаетесь между A и B, значение в вход не будет потерян, но он будет очищен, когда форма будет сохранена/отправлена.

<xh:html xmlns:xh="http://www.w3.org/1999/xhtml" 
     xmlns:xf="http://www.w3.org/2002/xforms" 
     xmlns:xxf="http://orbeon.org/oxf/xml/xforms" 
     xmlns:ev="http://www.w3.org/2001/xml-events" 
     xmlns:xs="http://www.w3.org/2001/XMLSchema" 
     xmlns:fr="http://orbeon.org/oxf/xml/form-runner"> 
    <xh:head> 
     <xh:title>XForms Hello</xh:title> 
     <xf:model> 
      <xf:instance> 
       <instance> 
        <select1>A</select1> 
        <input/> 
       </instance> 
      </xf:instance> 
      <xf:bind ref="input" 
        relevant="../select1 = 'A'" 
        calculate="if (../select1 = 'A') then . else ''" 
        readonly="false()"/> 
     </xf:model> 
    </xh:head> 
    <xh:body> 
     <xf:select1 appearance="full" ref="select1"> 
      <xf:item> 
       <xf:label>A</xf:label> 
       <xf:value>A</xf:value> 
      </xf:item> 
      <xf:item> 
       <xf:label>B</xf:label> 
       <xf:value>B</xf:value> 
      </xf:item> 
     </xf:select1> 
     <xf:input ref="input"/> 
    </xh:body> 
</xh:html> 
+0

Да, это решение моей проблемы! легко и понятно. Спасибо! – JorgeHortelano

+0

@JorgeHortelano Отлично, спасибо за подтверждение, что он работает для вас. – avernet

Смежные вопросы