0

radiobuttom リスト項目内にネストされたテキスト ボックスがあります。コードは次のとおりです。

<asp:RadioButtonList ID="OtherEducInNursing" runat="server" RepeatColumns="1" RepeatDirection="Vertical" RepeatLayout="Table">
            <asp:ListItem Value="1">Certificate<input id="OtherEdNsgCertName" type="text" MaxLength="25"/></asp:ListItem>
            <asp:ListItem Value="2">Baccalaureate</asp:ListItem>
            <asp:ListItem Value="3">Master</asp:ListItem>
            <asp:ListItem Value="4">Doctorate</asp:ListItem>
            <asp:ListItem Value="5">None of the above</asp:ListItem></asp:RadioButtonList>

クロムでも問題なく動作しますが、Firefox では、テキストボックスをクリックしようとすると、点滅しているカーソルがフォーカスを失います。カーソルを戻すには、テキストボックスを数回クリックする必要があります。

このようなコードをいくつか追加しました

 onclick="document.getElementById('OtherEdNsgCertName').focus();"

それでも機能しませんでしたが、理由と修正方法を知っている人はいますか? どうもありがとう

ここで編集もjqueryコードです

$(document).ready(function () {
    if($("#<%=OtherEducInNursing.ClientID%> :checked").val()!="1")
            $("#OtherEdNsgCertName").hide();
        else
            $("#OtherEdNsgCertName").show();
    $("#<%=OtherEducInNursing.ClientID%>").click(function () {
        if($("#<%=OtherEducInNursing.ClientID%> :checked").val()!="1")
            $("#OtherEdNsgCertName").hide();
        else
            $("#OtherEdNsgCertName").show();
    });

編集:htmlコード:

<table id="MainPlaceHolder_OtherEducation_OtherEducInNursing">
<tbody><tr>
    <td><input type="radio" value="1" name="ctl00$MainPlaceHolder$OtherEducation$OtherEducInNursing" id="MainPlaceHolder_OtherEducation_OtherEducInNursing_0"><label for="MainPlaceHolder_OtherEducation_OtherEducInNursing_0">Certificate<input type="text" onclick="document.getElementById('OtherEdNsgCertName').focus();" maxlength="25" id="OtherEdNsgCertName"></label></td>
</tr><tr>
    <td><input type="radio" value="2" name="ctl00$MainPlaceHolder$OtherEducation$OtherEducInNursing" id="MainPlaceHolder_OtherEducation_OtherEducInNursing_1"><label for="MainPlaceHolder_OtherEducation_OtherEducInNursing_1">Baccalaureate</label></td>
</tr><tr>
    <td><input type="radio" value="3" name="ctl00$MainPlaceHolder$OtherEducation$OtherEducInNursing" id="MainPlaceHolder_OtherEducation_OtherEducInNursing_2"><label for="MainPlaceHolder_OtherEducation_OtherEducInNursing_2">Master</label></td>
</tr><tr>
    <td><input type="radio" value="4" name="ctl00$MainPlaceHolder$OtherEducation$OtherEducInNursing" id="MainPlaceHolder_OtherEducation_OtherEducInNursing_3"><label for="MainPlaceHolder_OtherEducation_OtherEducInNursing_3">Doctorate</label></td>
</tr><tr>
    <td><input type="radio" value="5" name="ctl00$MainPlaceHolder$OtherEducation$OtherEducInNursing" id="MainPlaceHolder_OtherEducation_OtherEducInNursing_4"><label for="MainPlaceHolder_OtherEducation_OtherEducInNursing_4">None of the above</label></td>
</tr>

4

1 に答える 1

0

テキスト ボックスから focus 関数を削除し、jQuery でフォーカスを設定します。

$(document).ready(function () {
    if($("#<%=OtherEducInNursing.ClientID%> :checked").val()!="1")
        $("#OtherEdNsgCertName").hide();
    else
        {
            $("#OtherEdNsgCertName").show();
            $("#OtherEdNsgCertName").focus();
        }
$("#<%=OtherEducInNursing.ClientID%>").click(function () {
    if($("#<%=OtherEducInNursing.ClientID%> :checked").val()!="1")
        $("#OtherEdNsgCertName").hide();
    else
        {
            $("#OtherEdNsgCertName").show();
            $("#OtherEdNsgCertName").focus();
        }

});
于 2013-04-22T14:18:18.633 に答える