【问题标题】:Dynamic Form validation for multiple records多条记录的动态表单验证
【发布时间】:2014-01-28 05:12:20
【问题描述】:

我这里有一个表单验证。我需要为多个编辑记录创建动态表单验证。 如何在 for 循环中进行此操作?

这是我的脚本

<script>
jQuery(function($) {
    var validation_holder;

    $("form#register_form input[name='submit']").click(function() {

    var validation_holder = 0;

        var project         = $("form#register_form input[id='n_app_cn']").val();
        var project_regex   = /^[a-zA-Z0-9]+$/; // reg ex cost check    

        var counter         = $("form#register_form input[id='n_counter']").val();
        var counter_regex   = /^[0-9]+$/; // reg ex qty check

        /* validation start */  

        if(project == "") {
            $("span.val_project").html("This field is Required.").addClass('validate');
            validation_holder = 1;
        } else {
            if(!project_regex.test(project)){ // if invalid phone
                $("span.val_project").html("Invalid Special Characters!").addClass('validate');
                validation_holder = 1;

            } else {
                $("span.val_project").html("");
            }
        }

        if(counter == "") {
            $("span.val_counter").html("");
        } else {
            if(!counter_regex.test(counter)){ // if invalid phone
                $("span.val_counter").html("Refresh to avoid Database Error!").addClass('validate');
                validation_holder = 1;

            } else {
                $("span.val_counter").html("");
            }
        }

        if(validation_holder == 1) { // if have a field is blank, return false
            $("p.validate_msg").slideDown("fast");
            return false;
        }  validation_holder = 0; // else return true
        /* validation end */    
    }); // click end 

}); // jQuery End
</script>

我看到了这个脚本,但是如何将它与我当前的脚本混合使用?请帮忙

function validate() {
for(i = 0; i < document.form.rowcount.value; i++){
if (document.getElementById("client_id" + i).value=="") {
alert("empty");
document.getElementById("client_id" + i).focus();
return false;
}
}
}

【问题讨论】:

  • 一次只能运行一个表单。而且我们的 JQuery 比服务器脚本更快...因此,对于每个表单,您都可以使用 JQuery .. .. 如果您需要任何控件的验证代码,我可以给您...请回复我。 ...
  • @Partap 是的,只有一个表单使用此代码运行。是的,我需要这个。
  • @Partap 请教我
  • 我没什么可教你的......但我可以和你分享我的代码
  • @Partap 好的,请分享一下

标签: jquery


【解决方案1】:

尽量用$.each()点赞,

function validate() {
    var flag=true;
    $("form#register_form input[type='text']").each(function(i){
        if (!this.value) {
           alert("empty");
           this.focus();
           flag=false;
           return false;
        }
    });
    return flag;
}

称它为onclicksubmit button 喜欢,

jQuery(function ($) {
    var validation_holder;
    $("form#register_form input[name='submit']").click(function () {        
        var emptyFlag=validate();
        if(emptyFlag){
            // your remaining code for validation   
        }
    }); // click end 
}); // jQuery End

已更新,您可以添加class required, project, counter 来检查这些字段,并在您的js 中进行更改,

function validate() {
    var flag=true;
    $("form#register_form input.required").each(function(i){// use required class
        // same as above for all required fields
    });
    return flag;
}

对于project class 进行测试,

$('.project').each(function(){ // use $.each for all project class
    project = this.value;
    if (project == "") {
        // use $(this).next to show error in front of text box
        $(this).next("span.val_project")
               .html("This field is Required.").addClass('validate');
        validation_holder = 1;
    } else {
        if (!project_regex.test(project)) { // if invalid phone
            $(this).next("span.val_project").html("Invalid Special Characters!").addClass('validate');
            validation_holder = 1;
        } else {
            $(this).next("span.val_project").html("");
        }
    }
});
// Similarily you can add checks for item, counter, etc.

【讨论】:

  • 这样,如何在我当前的脚本中混合?
  • @surname 再次查看我的答案
  • 你能为我做一个小提琴吗?我在使用 jquery 时遇到问题:/
  • 首先你必须在fiddleset up your html and code,然后我会继续工作。
  • 这在我当前的代码中。这项工作仅适用于 1 条记录。但是当我在 php 代码中使用并编辑两个或多个记录时,它适用于第一条记录。我只需要为多行处理此代码。 jsfiddle.net/pF4un
【解决方案2】:

它非常简单的东西只是把你的函数放在像这样的 jQuery 调用上。

<script>
jQuery(function($) {
    var validation_holder;

    $("form#register_form input[name='submit']").click(function() {
//Put start up test thats it.
for(i = 0; i < document.form.rowcount.value; i++){
if (document.getElementById("client_id" + i).value=="") {
alert("empty");
document.getElementById("client_id" + i).focus();
return false;
}
}
    var validation_holder = 0;

        var project         = $("form#register_form input[id='n_app_cn']").val();
        var project_regex   = /^[a-zA-Z0-9]+$/; // reg ex cost check    

        var counter         = $("form#register_form input[id='n_counter']").val();
        var counter_regex   = /^[0-9]+$/; // reg ex qty check

        /* validation start */  

        if(project == "") {
            $("span.val_project").html("This field is Required.").addClass('validate');
            validation_holder = 1;
        } else {
            if(!project_regex.test(project)){ // if invalid phone
                $("span.val_project").html("Invalid Special Characters!").addClass('validate');
                validation_holder = 1;

            } else {
                $("span.val_project").html("");
            }
        }

        if(counter == "") {
            $("span.val_counter").html("");
        } else {
            if(!counter_regex.test(counter)){ // if invalid phone
                $("span.val_counter").html("Refresh to avoid Database Error!").addClass('validate');
                validation_holder = 1;

            } else {
                $("span.val_counter").html("");
            }
        }

        if(validation_holder == 1) { // if have a field is blank, return false
            $("p.validate_msg").slideDown("fast");
            return false;
        }  validation_holder = 0; // else return true
        /* validation end */    
    }); // click end 

}); // jQuery End
</script>

【讨论】:

  • 不是这样的。我的意思是在我的 if else 语句中添加 for 循环。
【解决方案3】:

我已经在另一个帖子上发布了类似的代码。请相应地修改代码,链接为-

How to do validation in JQuery dialog box?

如果此答案正确,请将其标记为答案,以便其他人将来可以将其用作参考

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多