提问者:小点点

在Javascript中是否有一种方法来获取所有的选择字段值?


选择字段有问题。

<select id="correct" name="ans[]">
   <option value="0">False</option>
   <option value="1">True</option>
  </select>

Onclick,我添加了更多的选择字段,但是当我尝试用ajax插入时,它只获取第一个选择的字段值。

Javascript代码

 $("#create").click(function (e) {

    e.preventDefault();

    var ans = [];
    $('input[name="answer[]"]').each(function () {
        ans.push(this.value);
    });

    $.ajax({
        type: 'POST',
        url: '/add_question',
        data: {answer: ans},
        dataType: 'JSON',
        success: function (data) {
            var msg = $("#msg").append(data.msg).fadeIn(500);
            msg.fadeOut(7500)
            $("#question").val("");
            $("#answer").val("");
        },
        error: function (data) {

            //alert(data)

        }

    });
});

Laravel控制器

公用函数存储(请求$DATA){

        foreach ($data['ans'] as $keys => $items) {
         
                $answer->answer= $items;
            
        }
        $answer->save();
    
    return response()->json(['msg' => 'successfull']);

}

共1个答案

匿名用户

是否确定提取的是input而不是select? 我试了一下,效果很好。

<select id="correct1" name="ans[]">
   <option value="0">False</option>
   <option value="1">True</option>
</select>
<select id="correct2" name="ans[]">
   <option value="0">False</option>
   <option value="1">True</option>
</select>
<select id="correct3" name="ans[]">
   <option value="0">False</option>
   <option value="1">True</option>
</select>
  
<button onclick="send()">send</button>

<script>
function send(){
  let el = $("select[name='ans[]']");
  let arr = [];
  
  el.each(function() {
    arr.push(this.value);
  });
  
  console.log(arr);
}
</script>