输入和TextArea字段的自动大写

时间:2014-08-22 06:09:50

标签: javascript html ajax

我有输入字段,并使用onKeyup和onKeyPress返回数字&字符然后移动到下一个字段。

<input name="aendcodeM" id="aendcodeM" type="text" size="25" maxlength="4" onKeyPress="return numchar(event)" onKeyup="autotab(this, document.form1.bendcodeM)"/>

<input name="bendcodeM" id="bendcodeM" type="text" size="25" maxlength="4" onKeyPress="return numchar(event)" onKeyup="autotab(this, document.form1.bndwdM)"/>

我正在尝试使用自动大写的功能,代码可以作为 -

<script type="text/javascript" src="js/jquery.min.js"></script>
<script>
$(document).ready(function() {
    $("input").keyup(function() {
        var val = $(this).val()
        $(this).val(val.toUpperCase())
    })
})
</script>
<script>
$(document).ready(function() {
    $("textarea").keyup(function() {
        var val = $(this).val()
        $(this).val(val.toUpperCase())
    })
})
</script>
<script>
$(input[type="text"]).on('keypress', function() { 
    var $this = $(this), value = $this.val(); 
    if (value.length === 1) { 
      $this.val( value.charAt(0).toUpperCase() );
    }  
});

</script>

但是没有用,因为角色没有像欲望那样自动资本化。在这方面有任何帮助,请务必。

谢谢&amp; Reagrds

9 个答案:

答案 0 :(得分:5)

使用css text-transform:大写作为输入的文字&amp; textarea 元素:

input, textarea{
    text-transform: uppercase;
}

这对你有用。

答案 1 :(得分:2)

代码中的许多错误:

为什么在没有初始化时调用函数?

  

未捕获的ReferenceError:演示中未定义autotab 错误。

<input name="aendcodeM" id="aendcodeM" type="text" size="25" maxlength="4" onKeyPress="return numchar(event)" onKeyup="autotab(this, document.form1.bendcodeM)"/>
                                                                           ^^^^^                               ^^^^

此处还缺少'

$('input[type="text"]').on('keypress', function() {
  ^                  ^

Working DEMO

How to check Error in console

enter image description here

答案 2 :(得分:1)

您应该只在Javascript中使用一个$(document).ready( ... )

Working demo of your code (fixed)

JS:

$(document).ready(function() {
    $("input, textarea").keyup(function() {
        var val = $(this).val()
        $(this).val(val.toUpperCase());
    });

    $('input[type="text"]').on('keypress', function() { 
        var $this = $(this), value = $this.val(); 
        if (value.length === 1) { 
            $this.val( value.charAt(0).toUpperCase() );
        }  
    });
});

答案 3 :(得分:0)

这样做是不必要的。我强烈建议您使用text-transform CSS属性强制大写。

CSS

input{
    text-transform: uppercase;
}

这将强制客户端始终以大写形式呈现文本。

然而

小心,因为值不是。当您处理您的操作时,重要的是您将值转换为客户端或服务器端的大写。

答案 4 :(得分:0)

有时我发现当你使用与函数名相同的变量名或与任何关键字相同时,它会抛出错误

所以尽量做一件事。也使用ID。

$(document).ready(function() {
$("#text_area").keyup(function() {
    var valtext = $(this).val()
    $(this).val(valtext.toUpperCase())
})

})

对此进行测试。可能这是您案件中发生的情况

也使用ID。

查看小提琴http://jsfiddle.net/36bqfms6/

答案 5 :(得分:0)

两件事 你必须放入分号并检查它是否正确指向

var val = $(this).val();//notice semicolon here
$(this).val(val.toUpperCase());//notice semicolon here

这是你的问题。您需要更好地理解这些概念。您正尝试在javascript和jquery中注册事件处理程序。 autocad和numchar函数没有定义,因为这些是使用javscript的事件处理程序,当它们被命中时它不会工作。

左下方查找代码,并查看此小提琴http://jsfiddle.net/wishy/qbfkhz88/

<input name="aendcodeM" id="aendcodeM" type="text" size="25" maxlength="4" />

<input name="bendcodeM" id="bendcodeM" type="text" size="25" maxlength="4" />

和javascript是

$(document).ready(function() {
    $("input").keyup(function() {

        var val = $(this).val();
        $(this).val(val.toUpperCase());
    });
});

答案 6 :(得分:0)

$("textarea").keyup(function() {
    var valtext = $(this).val()
    $(this).val(valtext.toUpperCase())
  });

Demo

以上代码适用于页面的所有textarea。首先,我们将采用用户开始输入的textarea值,然后使用内置函数将其设为Upper case jquery并分配给textarea。

答案 7 :(得分:0)

Check the demo

Jquery代码

$('[type=text]').keyup(function(){
    if($(this).val()!=''){
$(this).val( $(this).val().toUpperCase());
    }    
});

答案 8 :(得分:0)

试试这个

$( "#aendcodeM" ).bind( "input", function() {
 $("#aendcodeM").val($("#aendcodeM").val().toUpperCase());
});