0

我正在尝试使用 QuerySelector 获取数据表单中每个评论的值。有一个“添加”按钮,允许显示另一个并将元素的名称增加 +1。因此,例如第一个评论的名称为“comment0”,第二个,“comment1”,等等....

这是我尝试在其中使用 javascript 的 html:

            <li id="duplicate" class="list-group-item">
                <select name="acc<?php echo $count; ?>" class="form-control col-md-6 duplicate-select">
                    <option  value="choix">-- Choisir --</option>
                    <option class="duplicate-option" value="kitpieton">Kit piéton</option>
                    <option class="duplicate-option" value="chargeur">Chargeur</option>
                    <option class="duplicate-option" value="batterie">Batterie</option>
                    <option class="duplicate-option" value="capot">Capot batterie</option>
                    <option class="duplicate-option" value="sdcard">Carte SD</option>
                    <option class="duplicate-option" value="box">Emballage</option>
                    <option class="duplicate-option" value="autre">Autre (préciser)</option>
                </select>
                <input name="comment<?php echo $count; ?>" type="text" class="form-control duplicate-input" class="cold-md-6" placeholder="Détails"/>
                <div class="btn-group btn-toggle" data-toggle="buttons">
                    <label class="btn btn-sm btn-default">
                        <input type="radio" name="check<?php echo $count; ?>" class="btn duplicate-check" value="1">
                        <span class="glyphicon glyphicon-ok"></span>
                    </label>
                    <label class="btn btn-sm btn-primary active">
                        <input type="radio" name="check<?php echo $count; ?>" class="btn duplicate-check" value="0" checked >
                        <span class="glyphicon glyphicon-remove"></span>
                    </label>
                </div>
                <div class="clearfix"></div>
            </ul> 
            </li>   

至于 javascript,这个带有一个 name 属性的 querySelector 有效:

var form = document.forms[1];  
var selectElement = form.querySelector('input[name="comment0"]');
var selectedValue = selectElement.value;

alert(selectedValue);

但在 a for 它不识别 [i] :

var count = +$('.count').val() +1 ;
for(i=0;i<count; i++)
{

    var form = document.forms[1];  
    var selectElement = form.querySelector('input[name="comment[i]"]');
    var selectedValue = selectElement.value;
    alert(selectedValue);
}

如果您可以通过 Javascript 为我提供解决方案,我将不胜感激,但我仍然很乐意看到您如何使用 JQUERY 来做到这一点。

我也尝试使用 querySelectorAll,当我使用 3 个注释 type=text 并且其中 2 个具有值时,它不会显示元素的值:

var queryAll = document.querySelectorAll('#duplicate input');
var queryAllLength = queryAll.length;
alert(queryAll[1].value); // shows 1    

alert(queryAllLength); // shows 3

当我更改 var queryAll = document.querySelectorAll('#duplicate input'); 到 var queryAll = document.querySelectorAll('#duplicate .duplicate-input'); ,两个警报都只显示 var queryAll = document.querySelectorAll('#duplicate .form-control'); , queryAll 只显示 queryAllLength 显示 2 ...

4

1 回答 1

4

改变这一行:

var selectElement = form.querySelector('input[name="comment[i]"]');

至:

var selectElement = form.querySelector('input[name="comment'+i+'"]');
于 2014-07-06T12:06:45.737 回答