所以如果输入为空,我试图阻止表单提交。代码看起来像这样:
$(document).on("submit", "form#input_form", function(e){
if(!$(this).find("input[type=text]").val()){
e.preventDefault();
e.stopPropagation();
}
});
这不起作用。即使它同时执行preventDefault和stopPropagation,该请求也会通过。
但是,如果我执行以下操作,则会成功阻止提交:
$("form#input_form").on("submit", function(e){
if(!$(this).find("input[type=text]").val()){
e.preventDefault();
e.stopPropagation();
}
});
我不明白它的区别是什么,除了前者在文档级别附加处理程序而后者在表单本身中执行时,它基本上是相同的。顺便说一句,我正在使用form_for
帮助器来呈现表单。
答案 0 :(得分:0)
尝试使用Regular Expressions验证用户的输入。示例如下所示:
var userInputVal = $(this).find("input[type=text]").val();
// validate the user input. no error if user entered data with one or more characters.
function validateUserInput() {
var n = /(\.){1,}/; // creates a regular expression object pattern.
if (n.test(userInputVal)) {
userInputError.hide(); // hide the error message if the user input is one or more characters
return true;
} else {
userInputError.show(); // show the error message if the user input is one or more characters
return false;
}
}