[英]How to trigger on change when page is loaded form each parent
我在同一个页面上有一个包含国家和地区代码的多张表,它工作正常,当页面加载时,更改触发不起作用,
如果选择了印度,则应在加载事件时自动选择国家代码。这是我的代码
<table id="country">
<tr>
<td>
<select class="country" name="country">
<option value="">--select country--</option>
<option selected value="1">India</option>
<option value="2">China</option>
<option value="3">Japan</option>
<option value="4">Singapur</option>
</select></td>
<td>
<select class="country_code" name="country_code">
<option value="">--select code--</option>
<option value="1">+91</option>
<option value="2">+86</option>
<option value="3">+81</option>
<option value="4">+65</option>
</select>
</td>
</tr>
</table>
<table id="country">
<tr>
<td>
<select class="country" name="country">
<option value="">--select country--</option>
<option value="1">India</option>
<option selected value="2">China</option>
<option value="3">Japan</option>
<option value="4">Singapur</option>
</select></td>
<td>
<select class="country_code" name="country_code">
<option value="">--select code--</option>
<option value="1">+91</option>
<option value="2">+86</option>
<option value="3">+81</option>
<option value="4">+65</option>
</select>
</td>
</tr>
</table>
我的脚本文件
$(document).ready(function(){
$('table').on('change', '.country', function(){
$(this).closest('td').parent().find('.country_code').val($(this).val());
}).trigger('change');
});
尝试使用window .load()
事件,因为该事件在DOM
和所有HTML
加载后都会触发。
我将所有表IDs
更改为unique IDs
并更改了字段names
,以免重复。
这是底部的代码和代码段:
$( window ).load(function() { // Go through all tables on the page $( "table" ).each(function() { // make strings like "#currentID .country" var thisCountry = "#" + $(this).attr('id').toString() + " .country"; var thisCountryCode = "#" + $(this).attr('id').toString() + " .country_code"; // assign the same selected value from country to country_code $( thisCountryCode )[0].selectedIndex = $( thisCountry )[0].selectedIndex; }); // this is your original onchange handler $('table').on('change', '.country', function() { $(this).closest('td').parent().find('.country_code').val($(this).val()); }).trigger('change'); });
<!DOCTYPE html> <html> <head> <title>Title of the document</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> </head> <body> <table id="country1"> <tr> <td> <select class="country" name="country1"> <option value="">--select country--</option> <option selected value="1">India</option> <option value="2">China</option> <option value="3">Japan</option> <option value="4">Singapur</option> </select></td> <td> <select class="country_code" name="country_code2"> <option value="">--select code--</option> <option value="1">+91</option> <option value="2">+86</option> <option value="3">+81</option> <option value="4">+65</option> </select> </td> </tr> </table> <table id="country2"> <tr> <td> <select class="country" name="country2"> <option value="">--select country--</option> <option value="1">India</option> <option selected value="2">China</option> <option value="3">Japan</option> <option value="4">Singapur</option> </select></td> <td> <select class="country_code" name="country_code2"> <option value="">--select code--</option> <option value="1">+91</option> <option value="2">+86</option> <option value="3">+81</option> <option value="4">+65</option> </select> </td> </tr> </table> </body> </html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.