0

我有3个div如下:

<div id="div1">
    <table>
        <tr>
            <td>
                <Telerik:RadTextBox ID="RadTextBox1" runat="server">
                </Telerik:RadTextBox>
            </td>
        </tr>
        <tr>
            <td>
                <Telerik:RadTextBox ID="RadTextBox2" runat="server">
                </Telerik:RadTextBox>
            </td>
        </tr>
        <tr>
            <td>
                <Telerik:RadComboBox ID="RadComboBox1" runat="server">
                    <Items>
                        <Telerik:RadComboBoxItem Value="1" Text="First" />
                        <Telerik:RadComboBoxItem Value="2" Text="Second" />
                    </Items>
                </Telerik:RadComboBox>
            </td>
        </tr>
        <tr>
            <td>
                <Telerik:RadButton ID="RadButton1" runat="server" Text="Button 1">
                </Telerik:RadButton>
            </td>
        </tr>
    </table>
</div>
<div id="div2">
    <table>
        <tr>
            <td>
                <Telerik:RadTextBox ID="RadTextBox3" runat="server">
                </Telerik:RadTextBox>
            </td>
        </tr>
        <tr>
            <td>
                <Telerik:RadTextBox ID="RadTextBox4" runat="server">
                </Telerik:RadTextBox>
            </td>
        </tr>
        <tr>
            <td>
                <Telerik:RadComboBox ID="RadComboBox2" runat="server">
                    <Items>
                        <Telerik:RadComboBoxItem Value="1" Text="First" />
                        <Telerik:RadComboBoxItem Value="2" Text="Second" />
                    </Items>
                </Telerik:RadComboBox>
            </td>
        </tr>
        <tr>
            <td>
                <Telerik:RadButton ID="RadButton2" runat="server" Text="Button 2">
                </Telerik:RadButton>
            </td>
        </tr>
    </table>
</div>

如果任何文本框或组合框(并且还有其他 html 元素,如日历控件等)被聚焦,那么我想在按下 enter 时将该 div 按钮设置为默认按钮。

我只为 RadTextBoxes 尝试了如下代码:

$().ready(function() {
                $(document).keypress(function(e) {
                    if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
                        e.preventDefault();
                        if ($('#div1 input').is(":focus")) {
                            alert("div1");
                        }
                        else if ($('#div2 input').is(":focus")) {
                            alert("Inside div2");
                        }
                        else {
                            return false;
                        }
                    }
                });
            });

我看到它没有进入任何一个 If 子句。有人可以帮助我吗?

4

1 回答 1

0

当文本框聚焦时,我能够设置默认按钮。我看到当 RadTextBox 获得焦点时添加了 riFocused 类

if ($('#div1 input.riFocused').length > 0 || $('#div1.rcbFocused').length > 0) {
     alert("Inside div1");
}
else if ($('#div2 input.riFocused').length > 0) {
     alert("Inside div2");
}
else {
     return false;
}

对于 RadComboBox,该类是 rcbFocused。但问题是,当我单击 Enter 时,我什至无法进入 document.ready 循环。

于 2013-07-02T16:19:22.157 回答