【问题标题】:How to get Value of multiple select options with same class and name如何获取具有相同类和名称的多个选择选项的值
【发布时间】:2014-07-06 17:19:26
【问题描述】:

我正在尝试获取所选选项的值。但是,有 2 个不同的选择菜单,使用相同的名称和类别。我希望能够将文本拉到值中。

我已经知道他们选择了哪个选项,但我似乎无法获得该选项的值。

这是 HTML

<div id="single_course" style="display: none;">
    <SELECT class="form-control" name="course_choice">
        <OPTION value="1">Value 1</OPTION>
        <OPTION value="2">Value 2</OPTION>
        <OPTION value="3">Value 3</OPTION>
    </SELECT>
</div>
<div id="2day_course" style="display: none;">
    <SELECT class="form-control" name="course_choice">
        <OPTION value="1">Value 1</OPTION>
        <OPTION value="2">Value 2</OPTION>
        <OPTION value="3">Value 3</OPTION>
    </SELECT>
</div>

这是 JS 代码

var course_choice = $('#register select[name=course_choice]').value;

非常感谢您的建议!!

【问题讨论】:

  • 你不能改名字吗?
  • 是的 - 我可以更改他们的名字。我只是想找出最简单的方法来做到这一点! @AstroCB 我可以访问所有代码,所以如果您有建议,请发布。谢谢
  • 我只是想知道,如果它们有不同的名称会更容易,因为您可以单独引用它们。但是,下面发布的答案解决了这个问题。
  • 好的。因此,如果我将名称分开,那么我上面的代码会起作用吗? @AstroCB
  • 我相信;此外,类通常用于将相似的事物组合在一起(正如您所做的那样),但名称通常对于每个元素都是唯一的。它现在不起作用的原因是因为name="course_choice" 引用了两个元素,这就是为什么 sjkm 在下面的回答有效:它选择引用的两个对象中的每一个。

标签: javascript php select options default-value


【解决方案1】:

首先,您无法同时获得两者的值。因此,您可以将其作为数组获取。你可以这样做:

<div id="single_course" style="display: none;">
    <SELECT class="form-control" name="course_choice[]">
        <OPTION value="1">Value 1</OPTION>
        <OPTION value="2">Value 2</OPTION>
        <OPTION value="3">Value 3</OPTION>
    </SELECT>
</div>
<div id="2day_course" style="display: none;">
    <SELECT class="form-control" name="course_choice[]">
        <OPTION value="1">Value 1</OPTION>
        <OPTION value="2">Value 2</OPTION>
        <OPTION value="3">Value 3</OPTION>
    </SELECT>
</div>

或者,如果您无法更改 HTML,那么您可以按照sjkm 建议的方式进行操作:

var course_choices = $('select[name="course_choice"]');

var course_choice[0] = course_choices.eq(0).val();
var course_choice[1] = course_choices.eq(1).val();

【讨论】:

  • 请不要只是复制
  • @sjkm 抱歉,没有其他办法。我会在我的回答中相信你。
  • 这取决于你。你不需要。但是放不放也没关系。给出相同的结果@KingOptimizer!
  • 如果你将它显示到一个 PHP 文件中,那么它将作为一个数组。这意味着,course_choice =&gt; Array (2, 3)。像这样!
  • 当我使用你的代码时它显示 ARRAY ! @PraveenKumar
【解决方案2】:
var course_choices = $('select[name="course_choice"]');

var course_choice1 = course_choices.eq(0).val();
var course_choice2 = course_choices.eq(1).val();

【讨论】:

    【解决方案3】:

    试试这个:

    // array of selected options (array items are dom objects)
    var course_choice = $('#register select[name=course_choice] option:selected');
    
    // extract option's value with jquery
    console.log( $(course_choice[0]).val() );
    console.log( $(course_choice[1]).val() );
    
    // ... or without query
    console.log( course_choice[0].value );
    console.log( course_choice[1].value );
    

    【讨论】:

      【解决方案4】:

      对我来说工作得很好:

          <SELECT class="form-control select_addon" name="course_choice[]">
          var mang_addon_cart = [];
          var course_choice = $('.select_addon option:selected');
          for(var i = 0; i < course_choice.length; i++){
              var val_addon = course_choice.eq(i).val();
              var name_addon = course_choice.eq(i).data('name');
            mang_addon_cart.push({
              giatri : val_addon,
              name : name_addon
            });
          }
          console.log(mang_addon_cart);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-03-12
        • 1970-01-01
        • 2015-07-08
        • 1970-01-01
        • 2020-03-15
        • 2022-07-13
        • 1970-01-01
        相关资源
        最近更新 更多