bea*_*ear 8 html php forms submit form-submit
我正在使用PHP在需要时传递登录表单,这里是代码:
$htmlForm = '<form id="frmlogin">'.'<label>';
switch(LOGIN_METHOD)
{
case 'both':
$htmlForm .= $ACL_LANG['USERNAME'].'/'.$ACL_LANG['EMAIL'];
break;
case 'email':
$htmlForm .= $ACL_LANG['EMAIL'];
break;
default:
$htmlForm .= $ACL_LANG['USERNAME'];
break;
}
$htmlForm .= ':</label>'.
'<input type="text" name="u" id="u" class="textfield" />'.
'<label>'.$ACL_LANG['PASSWORD'].'</label>'.
'<input type="password" name="p" id="p" class="textfield" />'.
'<center><input type="submit" name="btn" id="btn" class="buttonfield" value="Sign in to extranet" /></center>'.
'</form>';
return $htmlForm;
Run Code Online (Sandbox Code Playgroud)
问题是,当用户点击进入IE8时,表单不提交,并且用户被迫点击提交按钮.
我该如何纠正这个?
ada*_*Lev 13
还要注意这个有趣的有趣错误:
我已经学到了很难,如果你的表单是display:none在页面加载,即使你稍后用Javascript显示它,IE8仍然不会在输入时提交.但是,如果它没有在页面加载时隐藏,并且您将其设置为display:none之后,如onDOMReady,则它可以正常工作!WTF
更多细节和解决方法:http://www.thefutureoftheweb.com/blog/submit-a-form-in-ie-with-enter
这是我在jQuery中的表现.
// Recreating normal browser behavior in Javascript. Thank you, Microsoft.
jQuery.fn.handle_enter_keypress = function() {
if ($.browser.msie){
$(this).find('input').keypress(function(e){
// If the key pressed was enter
if (e.which == '13') {
$(this).closest('form')
.find('button[type=submit],input[type=submit]')
.filter(':first').click();
}
});
}
}
$('form').handle_enter_keypress();
Run Code Online (Sandbox Code Playgroud)
如果这是一个真正的问题并且您找不到其他解决方案,您可以随时onkeypress为表单执行一个事件并检查是否Enter按下了该键。
编辑:根据机器的答案,这是正确的代码:
$htmlForm .= ':<form><label>'.$ACL_LANG['USERNAME'].'</label>'.
'<input type="text" name="u" id="u" class="textfield" />'.
'<label>'.$ACL_LANG['PASSWORD'].'</label>'.
'<input type="password" name="p" id="p" class="textfield" />'.
'<center><input type="submit" name="btn" id="btn" class="buttonfield" value="Sign in to extranet" /></center>'.
'</form>';
Run Code Online (Sandbox Code Playgroud)
编辑 2:您的 HTML 有效。尝试这个:
function checkEnter(e) { //e is event object passed from function invocation
var characterCode //literal character code will be stored in this variable
if (e && e.which) { //if which property of event object is supported (NN4)
e = e
characterCode = e.which //character code is contained in NN4's which property
}
else {
e = event
characterCode = e.keyCode //character code is contained in IE's keyCode property
}
if (characterCode == 13) { //if generated character code is equal to ascii 13 (if enter key)
document.forms[0].submit() //submit the form
return false
}
else {
return true
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13807 次 |
| 最近记录: |