0

我有一个客户想要拥有多个分发点,1 个位于东海岸,1 个位于西海岸

我使用的电子商务解决方案不支持这一点。我想出了一个解决方法,通过使用来自邮政编码的船作为键来提供多种运输选项。

我使用了一些 jQuery 来更改“运输选项”以反映分发位置。

这个想法可行,但我的弱点是 jquery,如果用户第二次更改运输选项,则选项默认恢复为原始电子商务默认选项。

到目前为止的代码是

jQuery(function($){ 
    var sel = document.getElementById('ShippingOptions');

    for(var i = sel.options.length - 1; i >= 0; i--) {
        if(sel.options[i].value == "-1")
            sel.options[i].text = "Select postage";
        if(sel.options[i].value == "75554")
            sel.options[i].text = "East Coast Distribution";
        if(sel.options[i].value == "75555")
            sel.options[i].text = "West Coast Distribution";

        $('#shippingSpan').text("Select postage");
    }
});
4

2 回答 2

1

请不要混合使用 jQuery 和 DOM。

动态更改选择不是一个好主意。取而代之的是两个选择或一个隐藏字段,可以使用正确的运输进行更新。

分配点变更的触发因素是什么?

为什么这是一个问题?如果用户选择值为 75554 的选项,文本不是东海岸,如果他选择 75555,选项的文本不是西海岸吗?

我猜(根据提供的问题和代码)这就是您可能想要的:

演示

 var shippingOpts = { "75554":"East Coast Distribution", "75555":"West Coast Distribution" }

$(function() {    
  $('#ShippingOptions').on("change",function() {
    var val = $(this).val();
    $('#shippingSpan' ).text(
      (shippingOpts[val]) ? 
       shippingOpts[val] : 
       $("#ShippingOptions option:selected").text()
    );
  });

  // when page loads:
  $('#ShippingOptions').trigger("change");
});
于 2013-01-21T10:05:39.287 回答
0

你可以像这样使用jquery。

    $('#selectorid option:selected').each(function(i, item){
      // $(this).value() to access value 
      // $(this).text() to access text
      // $(this).value(" set value here "); same way for text

      // use if else ladder or switch case 

     });
于 2013-01-21T10:13:34.983 回答