我有一个select元素,它使用ajax将一些数据发布到php脚本中。

我的html看起来像这样:

<select id="productoptiekeuze" class="productchoice" required="">
   <option value="">Maak uw keuze</option>
   <option value="0" data-src="45">€ 45&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;&nbsp; Formaat: 60 cm&nbsp;&nbsp; Kleur: century oak&nbsp;&nbsp; Materiaal: kunststof&nbsp;&nbsp; </option>
   <option value="1" data-src="45">€ 45&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;&nbsp; Formaat: 60 cm&nbsp;&nbsp; Kleur: century oak&nbsp;&nbsp; Materiaal: kunststof&nbsp;&nbsp; </option>
   <option value="2" data-src="55">€ 55&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;&nbsp; Formaat: 80 cm&nbsp;&nbsp; Kleur: dark oak&nbsp;&nbsp; Materiaal: kunststof&nbsp;&nbsp; </option>
   <option value="3" data-src="55">€ 55&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;&nbsp; Formaat: 80 cm&nbsp;&nbsp; Kleur: grey&nbsp;&nbsp; Materiaal: graniet&nbsp;&nbsp; </option>
   <option value="4" data-src="55">€ 55&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;&nbsp; Formaat: 80 cm&nbsp;&nbsp; Kleur: grey&nbsp;&nbsp; Materiaal: graniet&nbsp;&nbsp; </option>
   <option value="5" data-src="95">€ 95&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;&nbsp; Formaat: 120 cm&nbsp;&nbsp; Kleur: century oak&nbsp;&nbsp; Materiaal: eik&nbsp;&nbsp; </option>
   <optgroup label=""></optgroup>
</select>


最后一个optgroup是在IOS中解决问题。

这是我的ajax:

tpj('#productinfo').on('change', '#productoptiekeuze', function() {
  var $aangepasteprijs = tpj('#productoptiekeuze').find('option:selected').attr('data-src'),
  $huidigeprijs = tpj('#price').text(),
  $oudeprijs = tpj('#oldprice').text(),
  $alias = tpj('input[name="alias"]').val(),
  $quantity = tpj('input[name="quantity"]').val(),
  $value = tpj('#productoptiekeuze').find('option:selected').val(),
  url = 'includes/prodoptie.php';

  var posting = tpj.post( url, {
    aangepasteprijs: $aangepasteprijs,
    huidigeprijs: $huidigeprijs,
    oudeprijs: $oudeprijs,
    alias: $alias,
    quantity: $quantity,
    value: $value
  } );

  posting.done(function( data ) {
    tpj( "#productinfo" ).empty().append( data );
    tpj('option:contains(' + $value + ')').attr('selected', true);
  });
});


我将所选选项的值发布到脚本中,并希望在结果中自动选择该选项。但是我得到了真正的怪异行为,有时还能奏效,但是大多数时候我都没有反应,也没有与我点击的完全不同的东西。

为什么会这样呢?

You can see it functioning here(这是WINKELWAGEN中的PLAATS按钮上方的下拉列表)

返回的我的PHP脚本具有完全相同的列表和值。

最佳答案

我认为您完成的发布找不到您的选择。您应该进行两个div操作,并且仅更新需要更新的内容,因此您的选择不会因重新添加而生效。

否则,您可以尝试像这样发布:

posting.done(function( data ) {
    tpj( "#productinfo" ).empty().append( data );
    tpj('option[value="'+$value+'"]').prop('selected', true);
});

07-28 02:43
查看更多