0

これが私のhtmlコードです。

        <table >
            <tr>
                <th rowspan="3">
                        <h:selectOneRadio layout="pageDirection"
                        onClick="alert('selam')" id="selectOneRadio">
                        <f:selectItem itemValue="Categori" itemLabel="Radio 1" />
                        <f:selectItem itemValue="Service" itemLabel="Radio 2" />
                        <f:selectItem itemValue="Follower" itemLabel="Radio 3" />
                    </h:selectOneRadio>
                </th>
                <td>
                <h:inputText value="inputText 1" />
                </td>
            </tr>
            <tr>
                <td>
                <h:inputText value="inputText 2" />
                </td>
            </tr>
            <tr>
                <td>
                <h:inputText value="inputText 3" />
                </td>
            </tr>               

        </table>

ラジオボタンの1つを選択したい。それらの1つをクリックすると、inputTextを無効にします。

例えば:

  • Radio 1をクリックすると、入力テキスト1が無効になります。
  • ラジオ2をクリックすると、入力テキスト2が無効になります。
  • Radio 3をクリックすると、入力テキスト3が無効になります。

これどうやってするの?

4

2 に答える 2

1

ラジオボタンの値をマネージドBeanプロパティにバインドし、<f:ajax>ラジオボタンが変更されたときにajaxリクエストを送信してビューの一部を更新し、属性を使用して、選択したラジオボタンアイテムの値に応じdisabledて無効にします。<h:inputText>

例えば

<h:panelGroup id="inputs">
    <table>
        <tr>
            <th rowspan="3">
                <h:selectOneRadio value="#{bean.radio}" layout="pageDirection">
                    <f:selectItem itemValue="Categori" itemLabel="Radio 1" />
                    <f:selectItem itemValue="Service" itemLabel="Radio 2" />
                    <f:selectItem itemValue="Follower" itemLabel="Radio 3" />
                    <f:ajax render="inputs" />
                </h:selectOneRadio>
            </th>
            <td>
                <h:inputText value="#{bean.input1}" disabled="#{bean.radio == 'Categori'}" />
            </td>
        </tr>
        <tr>
            <td>
                <h:inputText value="#{bean.input2}" disabled="#{bean.radio == 'Service'}" />
            </td>
        </tr>
        <tr>
            <td>
                <h:inputText value="#{bean.input3}" disabled="#{bean.radio == 'Follower'}" />
            </td>
        </tr>               
    </table>
</h:panelGroup>

@ManagedBean
@ViewScoped
public class Bean {

    private String radio;
    private String input1;
    private String input2;
    private String input3;

    // ...
}
于 2012-05-04T13:35:19.667 に答える
0

Have a look at this, i think this is what you are looking for

<html>
<head>
<script type="text/javascript">
    function enable_area(opt)
    {
        //get the required document element and disable corresponding element.
        document.form.textarea1.disabled = (opt == 'Categori' ? true : false);
        document.form.textarea2.disabled = (opt == 'service' ? true : false);
        document.form.textarea3.disabled = (opt == 'Follower' ? true : false);
    }
</script>
</head>
<body>
    <form action="" method="post" name="form">
        <!--Pass the value field as selector when clicked on radio button-->
        Radio1 <input type="radio" name="radio" value="Categori" onclick="enable_area(this.value);" />
        <textarea name="textarea1"></textarea>
        <br />
        Radio2 <input type="radio" name="radio" value="service" onclick="enable_area(this.value);" />
        <textarea name="textarea2"></textarea>
        <br />
        Radio3 <input type="radio" name="radio" value="Follower" onclick="enable_area(this.value);" />
        <textarea name="textarea3"></textarea>
    </form>
</body>
</html>
于 2012-05-04T12:13:37.270 に答える