1

我设置了一个简单的 jquery 脚本来计算用户的服务成本。脚本效果很好!但是,我的数据库端调用了另一条路线。如何使用选项的实际输出而不是值进行计算

jQuery:

    var $selections = $('#selections');
var $selects = $("select").change(function () {
    var total = 0;
    $selections.empty();
    $selects.each(function () {
        var $selected = $(this).find("option:selected");
        var price = parseFloat($selected.data("price")) || 0;
        total += price;
        if($selected.val() !== ''){
            $('<li />', {
                text: $selected.val() + $(this).parent().clone().children().remove().end().text()+" " + $selected.data("price")
            }).appendTo($selections)
        }
    })
    $(".summary").text('Est. Total $' + total);
})

带有 PHP 的 HTML:

<select name="rooms" id="Areas"> 
<option value="" selected="selected">0</option>
 @foreach ($room as $rooms)
 <option data-price="{{ $rooms->pr_clean }}" value='{{ $rooms->room  }}'>{{ $rooms->room  }}</option>
 @endforeach
</select>

基本上我希望能够在值字段中添加一些不同的东西进入数据库,但仍然计算他们想要选择多少房间{{ $rooms->room }}

这是我的脚本如何工作的基本概念。http://jsfiddle.net/arunpjohny/xf9Fp/

4

1 回答 1

1

在 jQuery中,在标签内定义时.val(),将为您提供选项的值。如果选项中没有值,它将获取选项的文本。<option>

<option value="" selected="selected">0</option>
        ^------^                     ^
         value                      text

因此,因为您的某些选项有value="",所以 jQuery 的.val()将获得该值,这是一个空字符串。没有value=""里面的<option>标签.val()会给你0

为确保您始终获得可以使用的选项的文本.text()

所以使用这个: if($selected.text() !== ''){

于 2013-09-09T21:14:19.630 回答