ASP.NET Enter ключ - PullRequest
       5

ASP.NET Enter ключ

0 голосов
/ 28 ноября 2011

У меня есть главная страница, и на основе этой главной страницы я создал страницу с TextBox и двумя элементами управления Validation для RequiredValidator и RegularExpressionValidator и одним ValidationSummary.

при нажатии клавиши ввода.в TextBox я ожидал, что оба валидатора покажут свои errorMessage на validationSummary, но это не то, что происходит, это работает, только когда я нажимаю кнопку на странице.1009 * атрибут, но это не решило проблему.http://www.codeproject.com/KB/aspnet/aspnet_Enter_key_problem.aspx

Я хочу знать, в чем здесь проблема и есть ли обходной путь?

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">

    **<asp:Panel runat="server" DefaultButton="EmailSend">**
    <table style="width: 100%">
        <tr>
            <asp:ValidationSummary ID="EmailValidation" runat="server" CssClass="failureNotification"
                ValidationGroup="EmailValidation" />
        </tr>
        <tr>
            <td style="width: 76px">
                Email:
            </td>
            <td class="style1">
                <asp:TextBox ID="EmailForget" runat="server" Width="244px"></asp:TextBox>
            </td>
            <td>
                <asp:RequiredFieldValidator ID="EmailRequiered" runat="server" ControlToValidate="EmailForget"
                    CssClass="failureNotification" ErrorMessage="RequiredFieldValidator" ValidationGroup="EmailValidation">*</asp:RequiredFieldValidator>
                <asp:RegularExpressionValidator ID="EmailRegular" runat="server" ControlToValidate="EmailForget"
                    CssClass="failureNotification" ErrorMessage="email required"
                    ValidationGroup="EmailValidation">*</asp:RegularExpressionValidator>
            </td>
        </tr>
        <tr>
            <td style="width: 76px">
                &nbsp;
            </td>
            <td class="style1">
                <asp:Button ID="EmailSend" runat="server" Text="send" Width="56px" ClientIDMode="Static" />
            </td>
            <td>
                &nbsp;
            </td>
        </tr>
    </table>
   **<asp:Panel>**
</asp:Content>

Ответы [ 3 ]

0 голосов
/ 28 ноября 2011

Я решил эту проблему так:

protected void Page_Load(object sender, EventArgs e)
{
textboxusername.Attributes.Add("onKeyPress", "javascript:if (event.keyCode == 13)       __doPostBack('" + LinkButton1.UniqueID + "','')");
    textboxpassword.Attributes.Add("onKeyPress", "javascript:if (event.keyCode == 13)   __doPostBack('" + LinkButton1.UniqueID + "','')");
}

и это ссылка ..

<asp:LinkButton ID="LinkButton1" runat="server" class="btn" OnClick="LinkButton1_Click">
0 голосов
/ 28 ноября 2011

Попробуйте добавить этот код

<script type="text/javascript">

    if (document.addEventListener) {//if Firefox
        document.addEventListener("keypress", fireFoxHandler, true);
    } else {
    document.attachEvent("onkeyup", ieHandler);
    }

    function fireFoxHandler(evt) {            
        if (evt.keyCode == 13) {
            document.getElementById("EmailSend").click();
        }
    }

    function ieHandler(evt) {
        if (evt.keyCode == 13) {
            document.getElementById("EmailSend").click();
        }
    }

</script>

Нашли это решение здесь .(Я не проверял это в сценарии MasterPage, пожалуйста, проверьте ...)

0 голосов
/ 28 ноября 2011

Если вы используете IE, то в соответствии с ответами на этих двух страницах:

ASP.NET введите ключ и отправьте форму без JavaScript

Кнопка ввода не отправляет форму (ТОЛЬКО IE) ASP.NET

вам нужно только добавить следующее в вашу форму

<!-- Fix for IE bug submit on pressing "Enter") -->
<div style="display:none">
    <input type="text" name="hiddenText"/>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...