1

キーを押してphpセッション変数を削除したい。だから私はこれらのコードを使用しました、

    <script type="text/javascript">
function textsizer(e){
var evtobj=window.event? event : e 
var unicode=evtobj.charCode? evtobj.charCode : evtobj.keyCode
var actualkey=String.fromCharCode(unicode)
if(actualkey=="x"){
    location.href="biling.php?cmd="+actualkey;}
}
document.onkeypress=textsizer
</script>
<?php if(isset($_GET['cmd'])){
unset($_SESSION["bill_array"]);
header('location:biling.php');
}
?> }

ただし、問題は、テキストボックスに「x」と入力すると、このコードによってセッションがクリアされることです。だから私はそれを止めて、テキストボックスの外側にある「x」を押したときにだけセッションをクリアしたい

4

3 に答える 3

1

プロパティをチェックして、イベントe.targetをトリガーする要素を特定できます。keypress

//Does not work on IE
window.addEventListener('keypress', function(e){ console.log(e.target) }, false)

いつ行動を起こすかe.target.tagName == 'BODY'は良い選択です。


アップデート

の詳細についてEventは、以下を確認してください。

于 2012-07-13T02:35:33.000 に答える
1

既存の関数を次のように編集できると思います。

function textsizer(e) {
    var evtobj=window.event? event : e;
    var element = evtobj.target ? evtobj.target : evtobj.srcElement;
    if (element.tagName.toLowerCase() == "body") {
        var unicode=evtobj.charCode? evtobj.charCode : evtobj.keyCode;
        var actualkey=String.fromCharCode(unicode)
        if(actualkey=="x"){
            location.href="biling.php?cmd="+actualkey;
        }
    }
}
于 2012-07-13T03:02:40.793 に答える
-1

$( "input [type ='text']")。keypress(function(){

});

于 2012-07-13T02:39:12.013 に答える