我是Jquery的新手,我似乎遇到了一个恼人的问题。
如果某人点击提交,我该如何进行验证?
我是否必须说 - 如果提交== true运行功能?
<script>
$('#add_film').submit(function (e) {
var error = false;
// No value for movie_title
if ($('#movie_title').val() == "") {
alert("No Film");
error = true;
}
// No Value for actor
if ($('#leading_name').val() == "") {
alert("No actor");
error = true;
}
// No value for rating
if ($('#rating').val() == null) {
alert("No Rating");
error = true;
}
//No value for review
if ($('#review').val() == "") {
alert("No review");
error = true;
}
// Focus on first form field.
$("input:text:visible:first").focus();
if (error) {
e.preventDefault();
}
});
</script>
答案 0 :(得分:2)
从.ready()中删除它,将其添加到onclick,在提交按钮上。你可能想在.ready()上保留一些...就像专注于第一个元素部分一样。
答案 1 :(得分:1)
将代码移动到单击按钮事件,如下所示 -
$(document).ready(function(){
$("#submit").on('click',function(){
// No value for movie_title
if ($('#movie_title').val() == "" ) {
alert ("No Film");
}
// No Value for actor
if ($('#leading_name').val() == "") {
alert ("No actor");
}
// No value for rating
if ($('#rating').val() == null) {
alert ("No Rating");
}
//No value for review
if ($('#review').val() == "") {
alert ("No review");
}
});
// Focus on first form field.
$("input:text:visible:first").focus();
});
答案 2 :(得分:1)
您应该在表单submit
事件:
$('#add_film').submit(function (e) {
var error = false;
// No value for movie_title
if ($('#movie_title').val() == "") {
alert("No Film");
error = true;
}
// No Value for actor
if ($('#leading_name').val() == "") {
alert("No actor");
error = true;
}
// No value for rating
if ($('#rating').val() == null) {
alert("No Rating");
error = true;
}
//No value for review
if ($('#review').val() == "") {
alert("No review");
error = true;
}
// Focus on first form field.
$("input:text:visible:first").focus();
if (error) {
e.preventDefault();
}
});
顺便说一句,不要试图将验证绑定到按钮上的单击事件,这是不正确的。表单元素具有提交事件用于此目的。另外,请确保在出现错误时阻止表单的默认行为。
答案 3 :(得分:0)
警告错误,如果有标记则标记 - 如果有标记 - 阻止提交表单:
$('#add_film').submit(function(e) {
var err=0;
// No value for movie_title
if ($('#movie_title').val() == "" ) {
alert ("No Film");
err = 1;
}
// No Value for actor
if ($('#leading_name').val() == "") {
alert ("No actor");
err = 1;
}
// No value for rating
if ($('#rating').val() == null) {
alert ("No Rating");
err = 1;
}
//No value for review
if ($('#review').val() == "") {
alert ("No review");
err = 1;
}
// Focus on first form field.
$("input:text:visible:first").focus();
if(err == 1){
e.preventDefault();
}
});