0

私はいくつかの非常に初歩的な JavaScript 作業を行っていますが、問題が発生しているようです。私の人生では、Googleで非常に基本的な答えであるべきものを見つけることができないようです.

<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関数が実行されることです。ただし、関数を実行することはできません。

4

5 に答える 5

3

どうですか...

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関数でオブジェクトを使用できるようにしたいので、これを行います。

于 2012-05-10T02:12:20.303 に答える
0

フィドル: 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>
于 2012-05-10T02:35:40.093 に答える
0

onkeypress 属性と等号の間にスペースがあります。それを削除します。それはうまくいくはずです。

于 2012-05-10T02:11:01.180 に答える
0

エンターキーが押されたときに機能させたい場合は、フォームコントロールであるテキスト入力要素でエンターを押すとフォームが送信されるため、送信されるフォームを処理する必要があります。

keup などの他のイベントで値を小文字に変更したい場合がよくあります。

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

ただし、大文字が魔法のように小文字に変更されるため、この種のことを行うのはユーザーにとって少し面倒です。小文字のバックエンド要件がある場合は、ユーザーがテキストを入力するのを混乱させるよりも、そこで対処することをお勧めします。

于 2012-05-10T03:04:55.467 に答える
-1

コードの最初のいくつかの問題 var input は文字列ではなく入力ボックスであり、 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> 
于 2012-05-10T02:19:28.443 に答える