У меня следующий код 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"> </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;
}
Если Вы имеете корректную входную кнопку отправки, но используете (нажимают) событие на ту кнопку, это не включит его, входят. Это отправит форму, но не инициирует событие щелчка на кнопке, очевидно. При помещении функциональности для формирования себя и это, утверждают, что событие заставит его работать.
На всякий случай кто-то делает ту же ошибку как я и также приезжает, сюда ища ответ:
, Если Вы имеете два (или больше) кнопки отправки <глоток> 1 глоток> в Вашей форме, удар входит, только инициирует первое, отправляют а не второе.
<час> <глоток> 1 глоток>, как обозначено @paul-daoust в его комментарии к ответу @g-d-d-c: И <input type=submit>
и <button type=submit>
будет работать кнопкой отправки