Jquery select 在不使用值的情况下进行更改
Jquery select on change without using value
我有一些 jquery 代码使用 on change 函数显示另一个 select 框。目前,它正在使用 <option value="">
,我将如何使用不同的属性,例如 class(或者数据索引或类似属性)?
我不能使用值,因为它们会在表单中发布不同的数据。
Fiddle: http://jsfiddle.net/ks6cv/1466/
$('#Picker').on('change', function() {
if ($(this).val() === "colour") {
$("#colour").show()
} else {
$("#colour").hide()
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<table>
<tr>
<td>
<label for="Picker">Picker</label>
<select name="Picker" id="Picker">
<option></option>
<option value="colour">select colour</option>
<option value="spa">select size</option>
</select>
</td>
</tr>
<tr id="colour" style="display:none;">
<td>
<label for="specify">Colour</label>
<select id="QuoteSALES_LOCATION_ID_4" name="Quote.SALES_LOCATION_ID" value="Email / web">
<option></option>
<option>colour 1</option>
<option>colour 2</option>
</select>
</td>
</tr>
</table>
您可以在 option
中使用 data-attr
而不是 value
$('#Picker').on('change', function() {
$(this).find(':selected').data("value") === "colour" ?
$("#colour").show() : $("#colour").hide()
$(this).find(':selected').data("value") === "spa" ?
$("#spa").show() : $("#spa").hide()
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td>
<label for="Picker">Picker</label>
<select name="Picker" id="Picker">
<option></option>
<option data-value="colour">select colour</option>
<option data-value="spa">select size</option>
</select>
</td>
</tr>
<tr id="colour" style="display:none;">
<td>
<label for="specify">Colour</label>
<select id="QuoteSALES_LOCATION_ID_4" name="Quote.SALES_LOCATION_ID" value="Email / web">
<option></option>
<option>colour 1</option>
<option>colour 2</option>
</select>
</td>
</tr>
<tr id="spa" style="display:none;">
<td>
<label for="spa-test">spa choice</label>
<select id="spa-test" name="spa-test" value="Email / web">
<option></option>
<option>spa 1</option>
<option>spa 2</option>
</select>
</td>
</tr>
</table>
我有一些 jquery 代码使用 on change 函数显示另一个 select 框。目前,它正在使用 <option value="">
,我将如何使用不同的属性,例如 class(或者数据索引或类似属性)?
我不能使用值,因为它们会在表单中发布不同的数据。
Fiddle: http://jsfiddle.net/ks6cv/1466/
$('#Picker').on('change', function() {
if ($(this).val() === "colour") {
$("#colour").show()
} else {
$("#colour").hide()
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<table>
<tr>
<td>
<label for="Picker">Picker</label>
<select name="Picker" id="Picker">
<option></option>
<option value="colour">select colour</option>
<option value="spa">select size</option>
</select>
</td>
</tr>
<tr id="colour" style="display:none;">
<td>
<label for="specify">Colour</label>
<select id="QuoteSALES_LOCATION_ID_4" name="Quote.SALES_LOCATION_ID" value="Email / web">
<option></option>
<option>colour 1</option>
<option>colour 2</option>
</select>
</td>
</tr>
</table>
您可以在 option
data-attr
而不是 value
$('#Picker').on('change', function() {
$(this).find(':selected').data("value") === "colour" ?
$("#colour").show() : $("#colour").hide()
$(this).find(':selected').data("value") === "spa" ?
$("#spa").show() : $("#spa").hide()
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td>
<label for="Picker">Picker</label>
<select name="Picker" id="Picker">
<option></option>
<option data-value="colour">select colour</option>
<option data-value="spa">select size</option>
</select>
</td>
</tr>
<tr id="colour" style="display:none;">
<td>
<label for="specify">Colour</label>
<select id="QuoteSALES_LOCATION_ID_4" name="Quote.SALES_LOCATION_ID" value="Email / web">
<option></option>
<option>colour 1</option>
<option>colour 2</option>
</select>
</td>
</tr>
<tr id="spa" style="display:none;">
<td>
<label for="spa-test">spa choice</label>
<select id="spa-test" name="spa-test" value="Email / web">
<option></option>
<option>spa 1</option>
<option>spa 2</option>
</select>
</td>
</tr>
</table>