防止在页面上的所有文本框中输入字符ASP.net
问题描述:
我有一个用于编程创建文本框的面板。当用户点击保存时,这些texboxes中的值需要连接,我需要一个字符来分隔每个值。为此,我使用逗号(ASCII码44)。因为我使用的是逗号,所以我想阻止任何其他逗号输入到我的文本框列表中的任何文本框中。这样做最好的方法是什么?防止在页面上的所有文本框中输入字符ASP.net
答
如果jQuery是你可以做
$(".no-comma-textbox").on("keydown", function(e){
if (e.which == 188){
e.preventDefault();
}
});
和所有的文本框应该有class="no-comma-textbox"
的选项。
(注:当我测试了这188似乎是正确的值,以用于至少在Chrome逗号)
答
尝试使用连接到document
oninput
事件,String.prototype.slice()
document.oninput = function(e) {
if (e.target.value.slice(-1) === ",") {
e.target.value = e.target.value.slice(0, -1)
}
}
var input = document.createElement("input");
input.setAttribute("type", "text");
input.setAttribute("name", "input2");
document.body.appendChild(input);
<input type="text" name="input0" />
<input type="text" name="input1" />
好吧,您可能只需在用户发送POST请求并将其与逗号连接后,从文本框值中删除或替换所有逗号。如果你想添加额外的味道,你可以添加一个onkeyup函数到你的文本框中,如果添加的字符是逗号,则返回false。 – Shockwave
我没有很好的建议,除了提到当我们需要一个好的分离器时,我们使用一个管道|因为这通常不是其他人想要输入的内容。和这个链接到一个类似的问题http://*.com/questions/8282266/how-to-prevent-invalid-characters-from-being-typed-into-input-fields – Nikki9696
注意:你不控制客户端,所以你不能*依赖你在UI中做的任何事情。即使UI不允许,服务器也应该检查值。 –