In answer to your questions...
The keydown or keypress events can
be intercepted before text is input
using javascript
You can return false after binding a
function to the keydown or keypress
event. This will prevent the text
from being input.
Example using jQuery:
$("#inputfield").live("keydown", function(){
return false;
});
If you want to test some input for value on form submit you can do that using jQuery submit().
$("#theform").submit(function() {
var formval = $("#theinput").val();
if(formval == "") { //or some better test
alert("input value"); //or some other alert...
return false;
} else {
return true;
}
});
Returning false will invalidate the click to submit the form.
Edit:
If as you say in your comments you want to disable the submission of the form until requirements are met for the input field(s)
$("#inputfield").live("keyup", function(){
if($("#inputfield").val() == "") {
$('#button').attr("disabled", true);
} else {
$('#button').attr("disabled", false);
}
});
You want to use the "keyup" event handler to allow the text to be sent first. see my example: on jsbin
本文介绍了如何使用JavaScript通过keydown或keyup事件拦截输入,防止文本直接输入,并展示了如何在表单提交前进行值检查。通过jQuery实例演示了禁用提交按钮和验证输入的策略。
3106

被折叠的 条评论
为什么被折叠?



