更改选项值以进行链接

时间:2013-06-02 00:02:20

标签: jquery html-form html-select

我正在尝试将选项值列表更改为普通链接。我在这里读过几篇文章,但我真的无法想出这个。

带有选择框的原始代码如下:

   <form class="formProduct" id="product_configure_form" action="webshop.com/add/123456" method="post">
     <div class="product-configure">
      <div class="product-configure-variants">
       <label for="product_configure_variants">Choose: <em>*</em></label>
       <select onchange="document.getElementById('product_configure_form').action = 'http://webshop.com/product/variants/3415658/'; document.getElementById('product_configure_form').submit();" id="product_configure_variants" name="variant">
          <option value="5884844">Size 1</option>
          <option value="5884845">Size 2</option>
          <option selected="selected" value="5984036">Size 3</option>
        </select>
       </div>
       ....
      </form>

我尝试将选项值更改为普通文本链接。表格需要保持运作。所以我试图让实际的表单不可见,然后使用这段代码:

      <div class="sizes">
        <a title="size 1" id="5884844" onclick="belt_size_change(this);" onfocus="this.blur();" href="javascript:;">Size 1</a>
        <a title="size 2" id="5884845" onclick="belt_size_change(this);" onfocus="this.blur();" href="javascript:;">Size 2</a>
        <a title="size 3" id="5984036" onclick="belt_size_change(this);" onfocus="this.blur();" href="javascript:;">Size 3</a>
       </div>
      </div>

和Jquery:

     function belt_size_change(val){
      value = val.id;
      new_value = val.id;
      new_value = new_value.substr(1,99);
      $('#product_configure_variants').val(new_value);
      document.getElementById('product_configure_form').action = 'http://webshop.com/product/variants/3415658/';

      document.getElementById('product_configure_form').submit();
      }  

      $(document).ready(function() {
       current_value = val.id;
       new_value = "r" + current_value;
       $('#' + new_value).addClass('selected');
      });

对于Jquery来说,我是一个完整的菜鸟所以请温柔:)任何帮助非常感谢!

1 个答案:

答案 0 :(得分:1)

一种解决方案是使用jQuery的replaceWith()方法。

工作演示:http://jsfiddle.net/Adsgn/kXtLK/2/

$('select').each(function () {
    $(this).replaceWith('<ul>' + $(this).html() + '</ul>');
});