簡體   English   中英

在按鍵上執行JavaScript

[英]Executing JavaScript on Key Press

我正在做一些非常基本的javascript工作,似乎遇到了麻煩。 對於我的生活,我似乎無法找到谷歌應該是一個非常基本的答案。

<html>
    <head>
        <title>Test Page</title>
        <script type="text/javascript">
    function lowerCase(){
        var input = document.send.inputText;
        input.toLowerCase();
        document.write(input);
        alert(input);
    }
    </script>
    </head>
    <body>
        <h1>Test Page</h1>
        <form name="send">
            <input type='text' name="inputText" onkeypress="lowerCase()"/>
        </form>
    </body>
</html>

我的意圖是在將信息輸入文本框並按Enter鍵時執行函數lowerCase。 但是,我似乎永遠無法執行該功能。

怎么樣...

HTML:

<input type='text' name="inputText" onkeypress="lowerCase(this)">

JavaScript的:

function lowerCase ( input ) {
    setTimeout( function () {
        input.value = input.value.toLowerCase();    
    }, 0 );    
}

現場演示: http //jsfiddle.net/vXpj8/3/


function lowerCase ( e ) {
    if ( e.keyCode === 13 ) {
        this.value = this.value.toLowerCase();
        e.preventDefault();
    }        
}

document.send.inputText.onkeypress = lowerCase;

現場演示: http //jsfiddle.net/vXpj8/1/

請注意,我如何使用JavaScript綁定事件處理程序。 我這樣做是因為我想在函數中使用event對象。

onkeypress屬性和等號之間有一個空格。 刪除; 它應該工作。

小提琴: http//jsfiddle.net/iambriansreed/jEnxH/

<form name="send">
    <input type='text' name="inputText">
</form>
<script>
    document.send.inputText.onkeypress = function(event){
        if(event.keyCode != 13) return;       
        this.value = this.value.toLowerCase();
        alert(this.value.toLowerCase());
        event.preventDefault();
    };
</script>

如果在按下回車鍵時希望它工作,那么您需要處理正在提交的表單,因為按下輸入作為表單控件的文本輸入元素會提交表單。

您更有可能希望將值更改為其他事件的小寫,例如keup

 <input onkeyup="this.value = this.value.toLowerCase();" ... >

盡管如此,做這種事情對用戶來說有點煩人,因為大寫字母神奇地改為小寫。 如果對小寫字母有后端要求,那么最好處理它,而不是混淆輸入文本的用戶。

你的代碼的一些問題第一個var輸入是一個輸入框而不是字符串,toLowerCase()是一個字符串方法,你需要輸入值

var input = document.send.inputText;
alert(input.value);

第二,在輸入文本之前,onkeypress被執行,也許您應該考慮將onkeypress更改為onkeyup

試試這是否有幫助

<html>
<head>
    <title>Test Page</title>
    <script type="text/javascript">
        function lowerCase(){
            var input = document.send.inputText;
            input.value = input.value.toLowerCase();
        }
    </script>
</head>

<body>

    <h1>Test Page</h1>
    <form name="send">
        <input type='text' name="inputText" onkeyup="lowerCase()">
    </form>

</body>
</html> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM