Форма не отправляется при нажатии клавиши ввода

У меня следующий код HTML / JS / jQuery. Этот код представляет собой форму входа в систему, которая модально представлена ​​пользователю, чтобы он мог войти в систему. Проблема в том, что когда я нажимаю Enter, форма не выполняет событие «onsubmit». Когда я нажимаю кнопку в нижней части формы (которая имеет практически тот же код, что и событие onsubmit), она работает отлично. Мне интересно, может ли кто-нибудь сказать мне, почему эта форма не отправляется ..? Любая помощь будет принята с благодарностью.

Код jQuery для отображения режима входа в систему:

showDivAndFocus('loginModal','loginaccount'); 

function showDivAndFocus(v,t){

    if (api)
        if (api.isOpened)
            api.close();

    api = $('#'+v).overlay({
        mask: {color: '#000000'}, 
        top:'0px',
        api: true,
        autoScrollToActive: false,
        autoScrollOffset: 0 
    }).load();

    document.getElementById(t).focus();
}

Код HTML

<div class="modal" id="loginModal">
    <h2>User Login</h2>
    <br />

    <form action="javascript:void(0);" onsubmit="return(doLogin());"  name="loginForm" id="loginForm">
        <table width="95%" cellpadding="4" cellspacing="4">
        <tr>
        <td class="regw" align="left"><b>Account Number:</b></td>
        <td class="regw" align="left"><input type="text" maxlength="10" size="10" name="loginaccount" id="loginaccount" /></td>
        </tr>

        <tr>
        <td class="regw" align="left"><b>Username:</b></td>
        <td class="regw" align="left"><input type="text" maxlength="20" size="20" name="loginusername" id="loginusername" /></td>
        </tr>

        <tr>
        <td class="regw" align="left"><b>Password:</b></td>
        <td class="regw" align="left"><input type="password" maxlength="20" size="20" name="loginpassword" id="loginpassword" /></td>
        </tr>  

        <tr>
        <td class="regw" align="left"><b>Remember Me:</b></td>
        <td class="regw" align="left"><input type="checkbox" name="loginremember" id="loginremember" /></td>
        </tr>  

        <tr><td colspan="2">
            <div>  
                <center>
                    <table><tr><td width="50" valign="middle">
                        <div id="loginLoading" style="height:24px;width:24px;"></div>   
                    </td><td>
                        <button onclick="doLogin();" type="button" class="ok">Submit</button>
                    </td><td>
                        <button onclick="api.close();" type="button" class="cancel">Cancel</button>
                    </td><td width="50">&nbsp;</td></tr></table>
                </center>
            </div>
        </td></tr> 
        </table>
    </form>
</div>

Вызов AJAX

function doLogin(){
    var ajax = getXmlObject();
    var f = getFormVariables();
    var url= '/login.php?f=' + encodeURIComponent(f);
    if (ajax.readyState == 4 || ajax.readyState == 0) {
        ajax.open("POST", url, true);
        ajax.onreadystatechange = function () {
            if (ajax.readyState == 4) {
                var a = ajax.responseText;
                if (a=="OK"){...} else {...}
            }
        };
        ajax.send(null);
      }
      return false;
 }
28
задан Brian Tompsett - 汤莱恩 12 September 2019 в 17:32
поделиться

2 ответа

Если Вы имеете корректную входную кнопку отправки, но используете (нажимают) событие на ту кнопку, это не включит его, входят. Это отправит форму, но не инициирует событие щелчка на кнопке, очевидно. При помещении функциональности для формирования себя и это, утверждают, что событие заставит его работать.

0
ответ дан 28 November 2019 в 02:47
поделиться

На всякий случай кто-то делает ту же ошибку как я и также приезжает, сюда ища ответ:

, Если Вы имеете два (или больше) кнопки отправки <глоток> 1 в Вашей форме, удар входит, только инициирует первое, отправляют а не второе.

<час>

<глоток> 1 , как обозначено @paul-daoust в его комментарии к ответу @g-d-d-c: И <input type=submit> и <button type=submit> будет работать кнопкой отправки

0
ответ дан 28 November 2019 в 02:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: