0

我正在做一些非常基本的 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。但是,我似乎永远无法执行该功能。

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

onkeypress 属性和等号之间有一个空格。删除它;它应该工作。

于 2012-05-10T02:11:01.180 回答
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

如果您希望它在按下回车键时工作,那么您需要处理正在提交的表单,因为在作为表单控件的文本输入元素中按下回车会提交表单。

您更有可能希望在某些其他事件(例如 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 回答