javascript挑战表单elemts数组验证

javascript挑战表单elemts数组验证,javascript,html,javascript-events,Javascript,Html,Javascript Events,嗨,我有一个HTML表单 <form name="modeladd" ethod="post" class="form label-inline" enctype="multipart/form-data" onSubmit="return check('modeladd');"> <?php for($i=0;$i<$tot;$i++) { ?> <div class="field">

嗨,我有一个HTML表单

<form name="modeladd" ethod="post" class="form label-inline" enctype="multipart/form-data" onSubmit="return check('modeladd');">
            <?php  for($i=0;$i<$tot;$i++) { ?>      
                <div class="field">
                <label for="connect_msg">Connect Message </label>                                                                   
                <textarea rows="4" cols="50" name="connect_msg[<?php echo getField($langs[$lan]);?>]" id="connect_msg[]"><?php echo getField($row[$lan]); ?></textarea>
                </div>              
                <div class="field">
                <label for="call_msg">Call Message :</label>                                                
                <textarea rows="4" cols="50" name="call_msg[<?php echo getField($langs[$lan]);?>]" id="call_msg"><?php echo getField($row[$lan]); ?></textarea>
                </div>

                <div class="field">
                <label for="stripline_msg">Stripline Message :</label>                                              
                <textarea rows="4" cols="50" name="stripline_msg[<?php echo getField($langs[$lan]);?>]" id="stripline_msg"><?php echo getField($row[$lan]); ?></textarea>
                </div>
            <div class="field">
                    <label for="cost_msg">Cost Message :</label>                                                
                <textarea rows="4" cols="50" name="cost_msg[<?php echo getField($langs[$lan])?>]" id="cost_msg"><?php echo getField($row[$lan]); ?></textarea>
                </div>          
                <?php } ?>
<input type="submit" class="btn btn-grey" value="submit">
</form>

连接消息
  • id
    不能有
    []
    符号。请验证您的标记:
  • 从元素返回的
    值是类型
    string
    ,因此无法获取数组。您可以做的是解析字符串以创建数组
  • 例如,假设以下是输出的标记:

    <textarea id="connect_msg">a,b,c,d,e,f,g</textarea>
    
    connectMsgArray
    将包含
    ['a'、'b'、'c'、'd'、'e'、'f'、'g']

    您可以在此处阅读有关
    .split()
    的更多信息:

    Edit:既然您说
    textarea
    是一个循环,那么使用
    class
    name属性检索元素就更容易了,而使用将极大地帮助您

    因此HTML输出如下所示:

    <textarea class="connect_msg" id="connect_msg1">a,b,c,d,e,f,g</textarea>
    <textarea class="connect_msg" id="connect_msg2">h,i,j,k,l,m,n</textarea>
    <textarea class="connect_msg" id="connect_msg3">q,r,s,t,u,v</textarea>
    
    var getConnectMsg = $('.connect_msg');
    getConnectMsg.each(function(){
        var getValue = $(this).val();
        var connectMsgArray = getValue.split(',');
    });
    

    您可以在每次迭代过程中对一组字段进行表单验证。

    名称不能是多维数组。请更改以下内容:

    name="connect_msg[<?php echo getField($langs[$lan]);?>]"
    
    然后在post脚本中使用foreach循环对其进行寻址。
    关于id,请改用这个()我不知道你是否真的不能在id中使用[],但我知道这对我有用:

    id="connect_msg_<?php echo getField($langs[$lan]);?>"
    
    然后在form check函数中,而不是在此函数中:

    var name = new Array();
    name =document.getElementById('connect_msg[]').value;
    
    这样做:

    var connectMsg = document.getElementByClassName('connect_msg');
    
    然后在connectMsg数组中循环并获取/验证值。

    希望这有帮助。

    您只能使用一个ID相同的元素。是的,这就是为什么我在connect_msg元素中使用数组这个分类区域在循环中,因此没有单个ID=connect_msg可能,每个文本区域都需要唯一的ID,而且,不要使用
    new array()var name=[]否它与名称正常工作我想要ID元素的值而不是名称thanksid=“connect\u msg\ux”如何在表单提交中获取此元素的值
    
    name="connect_msg[]"
    
    id="connect_msg_<?php echo getField($langs[$lan]);?>"
    
    class="connect_msg"
    
    var name = new Array();
    name =document.getElementById('connect_msg[]').value;
    
    var connectMsg = document.getElementByClassName('connect_msg');