keypress事件在jQuery中不起作用

时间:2013-09-03 10:50:18

标签: jquery html

我的网页上有一个文本框。我想阻止用户输入空格而不输入任何字符。我现在有这个。

    $('#DivisionName').bind('keypress', function(e) {
        if($('#DivisionName').text().length == 0){
            if (e.which == 32){//space bar
                e.preventDefault();
            }
        }
        else{
            alert("if not working");
        }
    });    

这是我的HTML

    <input maxLength=15 name="DivisionName" id="DivisionName" size=15> 

当我运行代码时,它允许用户输入空格而不给出任何字符。我哪里错了?

5 个答案:

答案 0 :(得分:2)

div,span值时使用

text()。如果文本框始终使用val()

试试这个

$('#DivisionName').bind('keypress', function(e) {
    if($('#DivisionName').val().length == 0){
        if (e.which == 32){//space bar
            e.preventDefault();
        }
    }
    else{
        alert("if not working");
    }
}); 

您没有定义输入类型,因此请添加type="text"

  <input type="text" maxLength=15 name="DivisionName" id="DivisionName" size=15> 

答案 1 :(得分:0)

尝试这样:

$("#DivisionName").keypress(function() {
console.log("keypress called.");
});

答案 2 :(得分:0)

您必须将您的代码加入

$(function() {
// CODE
}

有效 - 点击此处:http://jsfiddle.net/Dufvg/

是的...用.val()

替换.text()

答案 3 :(得分:0)

Working Sample

<强> HTML

<input type="text" id="DivisionName" />

<强>的Javascript

window.onload = function () {
    var inputEl = document.getElementById("DivisionName");
    inputEl.addEventListener("keydown", function (e) {
        if (inputEl.value.length == 0) {
            if (e.keyCode == 32) {
                e.preventDefault();
            }
        }
    });
}

答案 4 :(得分:0)

试试这个,

 <input type="text" maxLength=15 name="DivisionName" id="DivisionName" size=15> 

$("#DivisionName").keypress(function(event) {
if($('#DivisionName').val().length == 0){
            if (e.which == 32){//space bar
                e.preventDefault();
            }
        }
        else{
            alert("if not working");
        }

});