1

私はJSにかなり慣れていません、これが私がこれまでに持っているものです。値のテキストを差し引くと追加できますが、それは私が渡したいものです。

$("#test").click(function() {
var total = 0;
$.each($(".sv-select") ,function() {
  total += parseInt($(this).val());

});
 $("input[value='15']").val(total);

});

HTML:

<form method="post" id="wpus-cart-button-form" class="wpus-cart-button-form beaver-run--   -bachelor-gulch-7/15---7/16" action="" onsubmit="return ReadForm(this, true);"><input    type="hidden" name="quantity" value="1" /><label class="lv-label size">ROOM OPTIONS:</label>  <br />
<select class="sv-select variation1" name="variation1" onchange="ReadForm (this.form, false);">
<option value="399 standard double room">standard double room $399.00</option>
<option value="499 upgraded king suite">upgraded king suite $499.00</option>
</select>
<p><br/><label class="lv-label color">ADD GUEST:</label><br />
<select class="sv-select variation2" name="variation2" onchange="ReadForm (this.form, false);">
<option value="0 no guests">no guests</option>
<option value="75 +1">+1</option>
</select>
<input type="hidden" name="product" value="Beaver Run - Bachelor Gulch 7/15 - 7/16" /><input type="hidden" name="price" value="15" /><input type="hidden" name="product_tmp" value="Beaver Run - Bachelor Gulch 7/15 - 7/16" /><input type="hidden" name="cartLink" value="http://performancecarclub.org/portfolio/beaver-run-bachelor-gulch-715-716/" /><input type="hidden" name="addcart" value="1" /><input id="test" class="vsubmit submit" type="submit" value="Purchase Trip!" /></form>

これがjsfiddleです:http://jsfiddle.net/rYfMx/

4

3 に答える 3

2

.clickはjQueryで非推奨になりました、.on()は新しい良いことです。それは次のように構成されます

$("#test").on('click', function(){

});

さらに調査したところ、.clickは非推奨ではないことがわかりました(申し訳ありません)。jQueryのソースを見ると、それがエイリアスであることがわかりました。ですから、間違っていることをお詫び申し上げます。このコメントを訂正したいと思います。

jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
    "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
    "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) {

    // Handle event binding
    jQuery.fn[ name ] = function( data, fn ) {
        if ( fn == null ) {
            fn = data;
            data = null;
        }

        return arguments.length > 0 ?
            this.on( name, null, data, fn ) :
            this.trigger( name );
    };

また、HTMLの値は数値である可能性があり、購入したものを追跡する必要がない限り、intを解析する必要はありません。これから、選択ボックスで現在のものの.val()を取得できます。

<option value="399">standard double room $399.00</option>
<option value="499">upgraded king suite $499.00</option>

状況に少しコンテキストを与えていただけませんか?全体的な目標は何ですか?

于 2012-06-26T15:15:11.597 に答える
2

何らかの理由でオプションにその複雑なテキストが必要な場合は、何かをデータ属性に移動します。

オプションの例:

<option value="399 standard double room" data-price="399">standard double room $399.00</option>

脚本:

$("#test").click(function() {
var total = 0;
    $.each($(".sv-select option:selected"), function() {
        total += $(this).data("price");
    });
 $("#price").val(total);
});​

更新されたフィドル:http: //jsfiddle.net/rYfMx/23/

于 2012-06-26T15:18:54.717 に答える
1

値の整数とテキストを文字で区切り、分割して配列に渡すことができます。その後、あなたは彼らとあなたがやりたいことをすることができます....

<option value="399|standard double room">standard double room $399.00</option>
<option value="499|upgraded king suite">upgraded king suite $499.00</option>

そしてあなたのjquery:

    $("#test").click(function() {
    var total = 0;
    $.each($(".sv-select") ,function() {
      var vals = $(this).val().split("|"),
          price = vals[0],
          type = vals[1];

      total += price;
      //do what you want with type

    });
     $("input[value='15']").val(total);

});
于 2012-06-26T15:34:31.503 に答える