【问题标题】:Getting the values of the group of textfields in single variable在单个变量中获取文本字段组的值
【发布时间】:2019-01-18 02:25:17
【问题描述】:

我正在尝试从类似于this 的文本字段组中获取值。默认情况下,第一个问题和选项字段将可用。当用户单击添加文本字段按钮时,将添加一组。当点击下载按钮时,它应该在一个变量中显示整个组值。

我想得到像this 这样的输出。

如果用户选择单选按钮,则前面应带有“#”,如果不是“*”。

我可以分别获取每个问题的值。但是,不能对整个组执行此操作并将其存储在单个实例中。我也实现了 for 循环。但是,出了点问题。

HTML:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/css/bootstrap.min.css" rel="stylesheet" />
       <form class="col-sm-12"> 

                        <div id="textfields">
                           <div id="entireText0">
                            <div class="form-row">
                                <div class="col-sm-10">
                                        <div class="form-group">
                                                <label for="textarea0">Question</label>
                                                <textarea class="form-control" id="textarea0" rows="2"></textarea>
                                        </div>
                                </div>
                            </div>

                            <div class="form-row">
                                <label>Options</label>
                            </div>

                            <div id="optionfields">
                                <div class="form-group" id="myForm0">
                                        <div class="input-group col-sm-3">
                                                <div class="input-group-prepend">
                                                  <div class="input-group-text">
                                                  <input type="radio" name="radiobutton" aria-label="Radio button for following text input">
                                                  </div>
                                                </div>
                                                <input type="text" name="txtbox" id="textbox1" class="form-control" aria-label="Text input with radio button">
                                        </div>
                                        </br>
                                        <div class="input-group col-sm-3">
                                                <div class="input-group-prepend">
                                                  <div class="input-group-text">
                                                  <input type="radio" name="radiobutton" aria-label="Radio button for following text input">
                                                  </div>
                                                </div>
                                                <input type="text" name="txtbox" id="textbox2" class="form-control" aria-label="Text input with radio button">
                                        </div>
                                    </br>
                                    <div class="input-group col-sm-3">
                                            <div class="input-group-prepend">
                                              <div class="input-group-text">
                                              <input type="radio" name="radiobutton" aria-label="Radio button for following text input">
                                              </div>
                                            </div>
                                            <input type="text" name="txtbox" id="textbox3" class="form-control" aria-label="Text input with radio button">
                                    </div>
                                    </br>
                                    <div class="input-group col-sm-3">
                                            <div class="input-group-prepend">
                                              <div class="input-group-text">
                                              <input type="radio" name="radiobutton" aria-label="Radio button for following text input">
                                              </div>
                                            </div>
                                            <input type="text" name="txtbox" id="textbox4" class="form-control" aria-label="Text input with radio button">
                                    </div>
                                    </br>                                
                                </div>
                            </div>
                            </div>
                            </div>



                <button type="button" id ="button0" class="btn btn-primary" onclick="addTextFields();">Add Text field</button>
                <br/><br/>
                <button type="button" class="btn btn-primary" onclick="selectedRadioButton();">Download</button>

            </form>

JS:

function selectedRadioButton() {
            for(textid=0;textareaid>=textid;textareaid--,textid++){
            var question= document.getElementById("textarea"+textid).value; 
            console.log("question",question);           
            question_gi= "::Q"+(textid+1)+"::"+question;
            var selectedArray=["["];
            $('.form-group #myForm+textid+ input[type=radio]').each(function() {
                var value = "*";
                if ($(this).is(":checked")) {
                value = "#";
                }
                value += $($(this).closest('.input-group').find("input[type=text]")).val();
                selectedArray.push(value);
            });
            selectedArray.push("]");
            var newArr = selectedArray.join(',').replace(/,/g, ' ').split();
            entire_gi= question_gi+ "%0d%0a" +newArr;
            finalvalue=[];
            finalvalue += entire_gi[textid];
            console.log(finalvalue);
              }

            }

【问题讨论】:

    标签: javascript arrays html radio-button


    【解决方案1】:

    您需要使用document.querySelectorAll 来获取所有单选按钮和所有文本输入,以形成最终的字符串。

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/css/bootstrap.min.css" rel="stylesheet" />
           <form class="col-sm-12"> 
    
                            <div id="textfields">
                               <div id="entireText0">
                                <div class="form-row">
                                    <div class="col-sm-10">
                                            <div class="form-group">
                                                    <label for="textarea0">Question</label>
                                                    <textarea class="form-control" id="textarea0" rows="2"></textarea>
                                            </div>
                                    </div>
                                </div>
    
                                <div class="form-row">
                                    <label>Options</label>
                                </div>
    
                                <div id="optionfields">
                                    <div class="form-group" id="myForm0">
                                            <div class="input-group col-sm-3">
                                                    <div class="input-group-prepend">
                                                      <div class="input-group-text">
                                                      <input type="radio" name="radiobutton" aria-label="Radio button for following text input">
                                                      </div>
                                                    </div>
                                                    <input type="text" name="txtbox" id="textbox1" class="form-control" aria-label="Text input with radio button">
                                            </div>
                                            </br>
                                            <div class="input-group col-sm-3">
                                                    <div class="input-group-prepend">
                                                      <div class="input-group-text">
                                                      <input type="radio" name="radiobutton" aria-label="Radio button for following text input">
                                                      </div>
                                                    </div>
                                                    <input type="text" name="txtbox" id="textbox2" class="form-control" aria-label="Text input with radio button">
                                            </div>
                                        </br>
                                        <div class="input-group col-sm-3">
                                                <div class="input-group-prepend">
                                                  <div class="input-group-text">
                                                  <input type="radio" name="radiobutton" aria-label="Radio button for following text input">
                                                  </div>
                                                </div>
                                                <input type="text" name="txtbox" id="textbox3" class="form-control" aria-label="Text input with radio button">
                                        </div>
                                        </br>
                                        <div class="input-group col-sm-3">
                                                <div class="input-group-prepend">
                                                  <div class="input-group-text">
                                                  <input type="radio" name="radiobutton" aria-label="Radio button for following text input">
                                                  </div>
                                                </div>
                                                <input type="text" name="txtbox" id="textbox4" class="form-control" aria-label="Text input with radio button">
                                        </div>
                                        </br>                                
                                    </div>
                                </div>
                                </div>
                                </div>
    
    
    
                    <button type="button" id ="button0" class="btn btn-primary" onclick="addTextFields();">Add Text field</button>
                    <br/><br/>
                    <button type="button" class="btn btn-primary" onclick="selectedRadioButton();">Download</button>
    
                </form>
    <script>
    function selectedRadioButton() {
       var textarea = document.querySelector('#textarea0');
       var question = textarea.value;
       var str = "::Q1::"+question+"\n";
       var radios = document.querySelectorAll('input[type=radio]');
       str += "[";
       var textinputs = document.querySelectorAll('input[type=text]');
       for(let i = 0; i < radios.length; i++){
         str += (radios[i].checked)? "#": "*";
         str += textinputs[i].value;
       }
       str += "]";
       console.log(str);
    }
    </script>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-27
      • 1970-01-01
      • 2015-03-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多