1

我的网页中有一个文本框。我想防止用户在不输入任何字符的情况下输入空格。我现在有这个。

    $('#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> 

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

4

5 回答 5

2

text()是在 div、span 值时使用。如果文本框总是使用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> 
于 2013-09-03T10:51:52.917 回答
0

像这样尝试:

$("#DivisionName").keypress(function() {
console.log("keypress called.");
});
于 2013-09-03T10:53:15.120 回答
0

工作样本

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();
            }
        }
    });
}
于 2013-09-03T11:00:20.077 回答
0

您必须将您的代码放入

$(function() {
// CODE
}

它有效 - 在这里查看:http: //jsfiddle.net/Dufvg/

是的......用 .val() 替换 .text()

于 2013-09-03T10:57:49.877 回答
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");
        }

});
于 2013-09-03T11:01:40.750 回答