我有以下HTML标记:
<select class="form-control travel_mode" name="travel_request[travel_stays_attributes][0][travel_mode]" style="width: 139px;">
<option value=""></option>
<option disabled="true" selected="selected">Please Select</option>
<option value="1">Flight</option>
</select>
<select class="form-control travel_mode" name="travel_request[travel_stays_attributes][1448001168204][travel_mode]" style="width: 139px;">
<option value=""></option>
<option disabled="true" selected="selected">Please Select</option>
<option value="1">Flight</option>
</select>
<select class="form-control travel_mode" name="travel_request[travel_stays_attributes][1448002208899][travel_mode]" style="width: 139px;">
<option value=""></option>
<option disabled="true" selected="selected">Please Select</option>
<option value="1">Flight</option>
</select>
<select class="form-control travel_mode" name="travel_request[travel_stays_attributes][1448002215357][travel_mode]" style="width: 139px;">
<option value=""></option>
<option disabled="true" selected="selected">Please Select</option>
<option value="1">Flight</option>
</select>
我想在name属性的这些元素上调用onclick
或onchange
函数,方法是编写一个正则表达式,这样我可以在单击上述任何下拉菜单时调用单个JS函数。如何为上述标记编写正则表达式?
您不需要正则表达式;所有元素上都有一个class
,所以你可以使用它:
$('select.form-control').change(function() {
console.log('I changed value...');
});
如果你想让它更具体地针对这些元素,你可以在一个以选择器开头的属性中使用name
属性:
$('select[name^="travel_request[travel_stays_attributes]"]').change(function() {
console.log('I changed value...');
});