Здравствуйте, а вот можно на вф странице сделать selectRadio таким:
тоисть один selectOption должен содержать apex:inputText.
Но как ето реализовать?
часто вижу такой вариант в различных опросниках: набор фуксированых вариантов и свой вариант.
я не делал такого в СФ еще.
но думаю, что все радио-варианты и это инпут поле (точнее их значение) должны быть "приписанны" к одной переменной в контроллере в которую это значение отправляется в момент постбека (но значение послденего радио не используется так как там берет значене из инпута). И все. Только нужно следить, чтобы только одно значение можно было выбрать.
или приписано к разным переменным: одна для радио, другая для инпута. А в контроллере уже разбиратся что вернулось с постбеком и как это использовать. В данном случае значение из послденего радио используется в контроллере - оно флаг, что нужно использовать значение из инпута.
У меня проблема это сделать на вф странице.
Вот например такая страничка:
<apex:page >
<apex:form >
<apex:selectRadio >
<apex:selectOption itemLabel="label" itemValue="value" >
Some Text <apex:inputText />
</apex:selectOption>
</apex:selectRadio>
</apex:form>
</apex:page>
Но как сделать так, чтобы, apex:inputText был в одной строче с radiobutton'ом? Как я понял все что внутри тега <apex:selectOption> </apex:selectOption> вылазит перед radiobuttom'ом.
а вот это не знаю. еще не пробовал.
но случай достаточно типичный - погугли этот вопрос на английском - наверняка это уже обсудали где-то
Вот как такая конструкция будет выглядеть в html виде:
<label><input type="radio" name="simple" value="1"/> Первый вариант</label><br>
<label><input type="radio" name="simple" value="2"/> Второй вариант</label><br>
<label><input type="radio" name="simple" value="input type"/> Другой вариант: </label><input type="text" name="simple" size="25">
Вот пример http://jsfiddle.net/g6Qzr/
А чтобы это дело организовать на apex+vf - очень просто
2 переменные:
- набор радиобутонов с последним "Другой вариант"
- String переменная blablabla
Выводим сначала радиобутоны и сразу на ними <apex:inputText value="blablabla"/>
Если не помещают стандартные стили от Salesforce, то должно выглядеть точно так же как в примере.
Если помешают, то css + js (jQuery) можно допилить. Также допилить можно disable для input поля, но это уже дело эстетики.
Dmitry Shnyrev, а можно это реализовать с помощу apex тегов?
Хотелось что-то похожее на:
<apex:selectRadio >
<apex:selectOption itemLabel="label" itemValue="value" />
<apex:inputText />
</apex:selectRadio>
При просмотре html, этот код превратился в
<input type="text" name="..."> - input, что после apex:selectOption
<fieldset style="border: none;">
<table role="presentation">
<tbody>
<tr>
<td>
<input type="radio" name="..." id="..." value="value">
<label for="..."> label</label>
</td>
</tr>
</tbody>
</table>
</fieldset>
Если нет, то можно както в <input type="radio" ...> сделать чтобы при выборе заполнялось property из конроллера? без использования js?