我有那段代码:
<script type="text/javascript">
$('#m_pair').on('change', function() {
if ($(this).val() == 'pair'){
$ilosc_pair = $('#quantity_wanted').val();
$ilosc_pair = $ilosc_pair * 2;
$("#quantity_wanted").val($ilosc_pair).change();
$("#group_5").val("35").change();
} else if ($(this).val() == 'single'){
$("#group_5").val("34").change();
}
});
</script>
问题是我的代码只更改了一个ID:quantity_wanted
或group_5
。我不能修改那个单一事件中的两个元素 - 只有一个。
有一秒钟我在网页上看到quantity_wanted
改变了值(乘以* 2),但是在第二次回到之前的值之后。
如果我切线:
`$("#quantity_wanted").val($ilosc_pair).change();`
或
`$("#group_5").val("35").change();`
代码工作正常,他们都不想工作。
当一个html下拉列表发生更改时,事件开始,并且应该更改一个文本字段和一个(另一个)下拉列表。
编辑:
<form id="form3" name="form3" method="post" action="">
<label for="Heading">Heading</label>
<select name="m_heading" id="m_heading">
<option value="pencil_pleat" selected="selected">pencil pleat</option>
<option value="tab_tops">tab tops</option>
<option value="gathered">gathered </option>
</select>
</form>
<form id="form4" name="form4" method="post" action="">
<label for="Type">Type</label>
<select name="m_pair" id="m_pair">
<option value="single" selected="1">single</option>
<option value="pair">pair</option>
</select>
</form>
<form method="post" action="{$customizationFormTarget}" enctype="multipart/form-data" id="customizationForm" class="clearfix">
<p class="infoCustomizable">
{l s='After saving your customized product, remember to add it to your cart.'}
</p>
{if $product->text_fields|intval}
<div class="customizableProductsText">
<h3>{l s='Please enter dimensions for price calculations:'}</h3>
<ul id="text_fields">
{counter start=0 assign='customizationField'}
{foreach from=$customizationFields item='field' name='customizationFields'}
{if $field.type == 1}
<li class="customizationUploadLine{if $field.required} required{/if}">
<label for ="textField{$customizationField}">{assign var='key' value='textFields_'|cat:$product->id|cat:'_'|cat:$field.id_customization_field} {if !empty($field.name)}{$field.name}{/if}{if $field.required}<sup>*</sup>{/if}</label>
<textarea name="textField{$field.id_customization_field}" id="textField{$customizationField}" rows="1" cols="40" class="customization_block_input">{if isset($textFields.$key)}{$textFields.$key|stripslashes}{/if}</textarea>
</li>
{counter}
{/if}
{/foreach}
</ul>
</div>
{/if}
<p id="customizedDatas">
<input type="hidden" name="quantityBackup" id="quantityBackup" value="" />
<input type="hidden" name="submitCustomizedDatas" value="1" />
<input type="button" class="button" value="{l s='Save'}" onclick="javascript:saveCustomization()" />
<span id="ajax-loader" style="display:none"><img src="{$img_ps_dir}loader.gif" alt="loader" /></span>
</p>
</form>
<script type="text/javascript">
$('#m_heading').on('change', function() {
if ($(this).val() == 'pencil_pleat'){ $("#group_1").val("1").change(); }
else if ($(this).val() == 'tab_tops'){ $("#group_1").val("2").change(); }
else if ($(this).val() == 'gathered'){ $("#group_1").val("3").change(); }
});
</script>
<script type="text/javascript">
$('#m_pair').on('change', function() {
if ($(this).val() == 'pair'){
$ilosc_pair = $('#quantity_wanted').val();
$ilosc_pair = $ilosc_pair * 2;
$("#quantity_wanted").val($ilosc_pair).change();
$("#group_5").val("35").change();
// alert("Your quantity has been doubled and your order marked as pair");
}
else if ($(this).val() == 'single'){ $("#group_5").val("34").change(); }
});
</script>
编辑:
@John S是的,有一个问题。我现在还没有找到它,但在某个地方有另一个evend处理程序将值改回原来的状态。我只是不明白为什么如果我使用一个.change()它被覆盖,而我使用2x .change()没有。无论如何,谢谢你们的帮助,并跟踪我正确的方向:)