使用FOR循环的Javascript表单验证

使用FOR循环的Javascript表单验证,javascript,php,jquery,html,validation,Javascript,Php,Jquery,Html,Validation,我需要一些JavaScript帮助,以便在JavaScript中使用进行表单验证 我有一个表单,其中包含5个用户名和密码字段,在将表单提交到数据库之前,需要使用JavaScript对表单进行验证 你可以看到我需要的代码和结果 或 这是我认为的代码: <form action="insertMember" method="post" name="fmember" onsubmit="return validateMember()"> <div class="form-gr

我需要一些JavaScript帮助,以便在JavaScript中使用
进行表单验证

我有一个表单,其中包含5个用户名和密码字段,在将表单提交到数据库之前,需要使用JavaScript对表单进行验证

你可以看到我需要的代码和结果

这是我认为的代码:

<form action="insertMember" method="post" name="fmember" onsubmit="return validateMember()">
    <div class="form-group">
       <label>Shop</label>
       <select>
          <option value="">Choose The Host</option>
          <option value="1">Shop 1</option>
          <option value="2">Shop 2</option>
       </select>
    </div>
    <?php 
    $max = 5;
    for($i=1; $i<=$max; $i++) { ?>
       <span class="error<?php echo $i; ?>" class="label label-danger"></span>
       <label>Username <?php echo $i; ?></label>
       <input type="text" name="user[<?php echo $i; ?>]">
       <label>Password <?php echo $i; ?></label>
       <input type="password" name="pass[<?php pass $i; ?>]">
       <span class="errorp<?php echo $i; ?>" class="label label-danger"></span>
    <?php } ?>
</form>

商店
选择主机
1号店
商店2

我不确定代码试图用max变量做什么,但是这应该会让您上路:

$.each( $( "#input input" ), function( key, element ) {

        if( !$(element).val() ) {

            $( "#error" + key ).text( "Input " + $( element ).attr( "name" ) + " is required" );

            return false;

    }

});

只需用这个替换旧的JS。

我不确定代码试图用max变量做什么,但是这应该会让您走上正轨:

$.each( $( "#input input" ), function( key, element ) {

        if( !$(element).val() ) {

            $( "#error" + key ).text( "Input " + $( element ).attr( "name" ) + " is required" );

            return false;

    }

});

只需用这个替换旧的JS。

这里有多个问题:

  • 输入元素的name属性值具有数组语法

    <input type="text" name="user[1]">
    
    因此,请更新这一行:

     var member = document.forms.fmember.user[i].value;
    
    致:

    password
    变量也一样:

    var password = document.forms.fmember["pass["+i+"]"].value;
    
  • 那些包含文本输入值的变量(即
    member
    password
    )具有字符串类型的值,因此要检查空字符串,只需使用
    if(member=''){
    而不是
    if(member[i]=''){

  • 请参见下文(或附录)中的这些变化

    $('#shop')。在('change',function()上{
    $('输入').fadeIn(1000);
    如果($('#shop').val()=''){
    $('输入').fadeOut(500);
    }
    });
    //问题就在这里
    //如何使用FOR循环验证输入?
    //因为$max或max可以更改为10或更多。
    函数validateMember(){
    //我这里有个错误。
    var max=3;
    var成员=[];
    var密码=[];
    对于(i=1;i
    
    这里有多个问题:

  • 输入元素的name属性值具有数组语法

    <input type="text" name="user[1]">
    
    因此,请更新这一行:

     var member = document.forms.fmember.user[i].value;
    
    致:

    password
    变量也一样:

    var password = document.forms.fmember["pass["+i+"]"].value;
    
  • 那些包含文本输入值的变量(即
    member
    password
    )具有字符串类型的值,因此要检查空字符串,只需使用
    if(member=''){
    而不是
    if(member[i]=''){

  • 请参见下文(或附录)中的这些变化

    $('#shop')。在('change',function()上{
    $('输入').fadeIn(1000);
    如果($('#shop').val()=''){
    $('输入').fadeOut(500);
    }
    });
    //问题就在这里
    //如何使用FOR循环验证输入?
    //因为$max或max可以更改为10或更多。
    函数validateMember(){
    //我这里有个错误。
    var max=3;
    var成员=[];
    var密码=[];
    对于(i=1;i
    
    抱歉,它不起作用,我放代码时出错了吗?请描述什么不起作用以及是否有任何错误。抱歉,它不起作用,我放代码时出错了吗?请描述什么不起作用以及是否有任何错误。非常感谢Sam,它现在工作得很好!嗨Sam,不是在JavaScript上创建变量max。是吗无论怎样,都可以像
    input.length
    那样获得
    user.length
    ?因此,如果PHP文件上的
    $max
    输入有时由管理员用户更改,则无需更改JS文件上的
    var max=5
    。如果该值来自PHP,则可以在JS变量中呈现带有该值的
    标记……否则,如果它取决于填充了很多输入,这可能会更复杂。也许你应该了解该值的来源细节。非常感谢Sam,它现在工作得很好!嗨Sam,不是在JavaScript上创建变量max。还有没有像
    input.length
    那样的
    user.length
    ?那么,如果有时
    $max输入由管理员用户更改无需更改JS文件上的
    var max=5
    。如果该值来自PHP,则可以在JS变量中呈现带有该值的
    标记……否则,如果它取决于填写的输入数量,则可能会更复杂。也许您应该了解该变量的详细位置价值源于价值。