我有以下代码:
<input id="id_sf-0-use_incident_energy_guess"
name="sf-0-use_incident_energy_guess"
onchange="show_hide_guess(this.id);"
onload="show_hide_guess(this.id);"
type="checkbox">
问题是onload
.它在输入字段中不起作用...
我不能使用jquery $(document).ready
因为我还不知道这个表格的 id......(这是一个 Django 表单集,每个生成的表单都有不同的前缀)。
你知道我该怎么解决这个问题吗?
提前谢谢。
输入元素上没有load
事件。您可以将类添加到输入元素并使用 css 类选择器将其定位。
目录
<input id="id_sf-0-use_incident_energy_guess" class="input-energy-guess"
name="sf-0-use_incident_energy_guess"
onchange="show_hide_guess(this.id);"
type="checkbox">
Js
$(function () {
//Now you can access the input using class selector
$('.input-energy-guess').each(function () {
show_hide_guess(this.id);
});
});
如果无法添加类或修改 html,则可以使用属性 end with selector。
$(function () {
$('name$=”use_incident_energy_guess”').each(function () {
show_hide_guess(this.id);
});
});
我会使用即时函数来模拟加载事件。你可以试试这个:
<input id="id_sf-0-use_incident_energy_guess"
name="sf-0-use_incident_energy_guess"
onchange="show_hide_guess(this.id);"
type="checkbox">
<script>
function show_hide_guess(id) {
console.log("get: " + id);
// your code goes here
}
(function(show_hide_guess) {
var i, inputs = document.getElementsByTagName('input'),
len = inputs.length;
for (i=0; i<len; i++) {
var input = inputs[i],
id = input.getAttribute("id");
show_hide_guess(id);
}
})(show_hide_guess);
</script>
注意:您必须将 show_hide_guess()
方法传递给即时函数才能使其在加载和更改时工作。