javascript - 为选项选择设置多个值并使用 jQuery 获取它们

标签 javascript jquery html-select

我尝试为一个选择选项分配两个值,并根据后续单选按钮的结果选择一个或另一个。

例如,在这个例子中,我使用了 2 件不同的衬衫,根据您选择的衬衫尺寸,有两种不同的价格。 我知道这段代码不起作用,可能是因为“value1”和“value2”,但我只是把它放在这里来说明我想要实现的目标。

http://jsfiddle.net/Shibi/o2hftb6e/3/

任何帮助都会很棒。谢谢!

HTML

<select id="shirts">
    <option>Choose shirt</option>
    <option value1="15" value1="20">Shirt 1</option>
    <option value1="20" value1="25">Shirt 2</option>
</select>
<div>
    <input type="radio" name="1" value="small" />Small
    <input type="radio" name="1" value="medium" />Medium</div>
<div id="priceSummary"></div>

JS

$('#shirts').on('change', function () {

    var selectedShirtText = $("#shirts :selected").text();
    var selectedShirtValue = $("#shirts :selected").val();

    $("#priceSummary").text(selectedShirtText ? ("Price of: " + selectedShirtText + " " + "$" + selectedShirtValue) : "");

});

最佳答案

以下是我解决您的问题的建议:

  1. .change() <select> 上的事件和单选按钮,因为您永远不知道用户会首先选择哪一个。
  2. 而不是使用 value1value2 ,使用 HTML5 data-属性来存储不同尺寸的价格。
  3. .change()事件被触发,嗅探所选衬衫的类型,并根据 data- 获取尺寸的正确价格。由单选按钮的值指定的属性。
  4. 声明默认尺寸,以便您的价格不会不确定。

所以你的 HTML 是:

<select id="shirts">
    <option value="">Choose shirt</option>
    <option value="Shirt 1" data-small="15" data-medium="20">Shirt 1</option>
    <option value="Shirt 2" data-small="20" data-medium="25">Shirt 2</option>
</select>
<div>
    <input type="radio" name="shirtSize" value="small" checked />Small
    <input type="radio" name="shirtSize" value="medium" />Medium
</div>
<div id="priceSummary"></div>

这是有效的演示:http://jsfiddle.net/teddyrised/o2hftb6e/8/

$('#shirts, input[name="shirtSize"]').on('change', function () {

    var selectedShirtText = $("#shirts :selected").val();
    var selectedShirtValue = $("#shirts :selected").attr("data-" + $('input[name="shirtSize"]:checked').val());

    $("#priceSummary").text(selectedShirtText ? ("Price of: " + selectedShirtText + " " + "$" + selectedShirtValue) : "");

});

关于javascript - 为选项选择设置多个值并使用 jQuery 获取它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25834667/

相关文章:

javascript - MYSQL中查询数组

javascript - Redux - 如何从商店获取数据并发布它

javascript - 未捕获的类型错误 : Object has no method 'sortContents'

javascript - 为什么我的 Bootstrap 3.1.1 'Collapse' 元素会自动关闭?

javascript - 将 php 数组传递给 Ajax 变量

javascript - Jquery只执行一次函数

html-select - 我可以在选择(下拉)中将自定义属性添加到选项值吗

javascript - Kendo UI Web Grid - Popup_Editor 模板 - 下拉列表

javascript - .NET Core 5.0 到 Javascript DFH key 交换不起作用

javascript - 选择数组中的特定元素作为下拉列表