按两次退出键可清除表单字段

时间:2013-07-26 08:43:16

标签: javascript

我的JSP页面存在问题

当用户填写表单字段并按两次转义键时,IE8会自动清除页面的所有文本字段。这个问题有什么解决方案吗?

还是一种禁用此功能的方法?

我使用以下代码来禁用“Esc”键,但问题未解决,代码无效

 if (key == 27) {
 cancelKey(event); 
 return false;}

 function cancelKey(evt) { 
    if (evt.preventDefault) { 
    evt.preventDefault(); 
    return false; 
    } 
    else { 
    evt.keyCode = 0; 
    evt.returnValue = false; 
    } 
    } 

任何帮助都将受到高度赞赏。

2 个答案:

答案 0 :(得分:0)

试试这个

<script type="text/javascript"> 

(function() /* Prevent Esc deleting imput and if input is readonly, stop backspace acting as 'Back' */
{
  var inps = document.getElementsByTagName( 'input' ), /* Place BELOW all <input>s */
      field;

  function ih( obj, evt, func )
  { 
    obj.attachEvent ? obj.attachEvent( 'on' + evt, func ) : obj.addEventListener( evt, func, false );
  }      

  function k( e )
  {  
    var evt = ( e || window.event ),
        elem = evt.srcElement || evt.target,
        ro = elem.getAttribute('readonly');

    if( evt.keyCode == 27 || ( ro && evt.keyCode == 8 ) )
      evt.preventDefault ? evt.preventDefault() : evt.returnValue = false;  
  };

  for( var i = 0; ( field = inps[ i ] ); i++ ) 
    ih( field, 'keydown', k );          
})()

</script>

它可能有效或可能无效。许多事情[热键]无法阻止。 资料来源:http://www.webdeveloper.com/forum/showthread.php?217535-esc-key-clears-html-input-text-values

答案 1 :(得分:0)

试试这个,

document.attachEvent('onkeydown', function () {
     if (window.event.keyCode == 27) {
           window.event.returnValue = false;
      }
});