我需要在两个案例上运行一个函数。一个页面加载时,每次单击元素一个。单击事件有效,但是上载事件没有。
$(document).ready(function(e) {
var captcha;
$('#captcha').on('ready click',function(){
function alphanumeric_unique() {
return Math.random().toString(36).split('').filter( function(value, index, self) {
return self.indexOf(value) === index;
}).join('').substr(2,8);
}
captcha = alphanumeric_unique();
$(this).val(captcha);
});
});
<input type="text" readonly value="" id="captcha">
请帮忙吗?
答案 0 :(得分:1)
您需要在页面加载时触发点击事件:
$(document).ready(function(e) {
$('#captcha').on('click',function(){
function alphanumeric_unique() {
return Math.random().toString(36).split('').filter( function(value, index, self) {
return self.indexOf(value) === index;
}).join('').substr(2,8);
}
captcha = alphanumeric_unique();
$(this).val(captcha);
});
$('#captcha').trigger("click"); // it will automatically call click event
});
答案 1 :(得分:1)
您需要将该功能放在click事件之外。然后你可以在页面加载时调用它。
$(document).ready(function(e) {
var captcha = alphanumeric_unique();
$('#captcha').on('ready click', function() {
captcha = alphanumeric_unique();
$(this).val(captcha);
});
});
function alphanumeric_unique() {
return Math.random().toString(36).split('').filter(function(value, index, self) {
return self.indexOf(value) === index;
}).join('').substr(2, 8);
}
如果将函数放在click事件中,则范围将仅限于该事件处理程序。
答案 2 :(得分:1)
只需单独设置您的功能,并在任何喜欢的事件上使用它
$(document).ready(function(){
function alphanumeric_unique() {
return Math.random().toString(36).split('').filter( function(value, index, self) {
return self.indexOf(value) === index;
}).join('').substr(2,8);
}
var captcha = alphanumeric_unique();
$('#captcha').on('click',function(){
$(this).val(captcha = alphanumeric_unique());
});
});
答案 3 :(得分:0)
您可以重复使用这样的功能:
function alphanumeric_unique() {
return Math.random().toString(36).split('').filter( function(value, index, self) {
return self.indexOf(value) === index;
}).join('').substr(2,8);
}
function update_captcha() {
$('#captcha').val(alphanumeric_unique());
}
$(document).ready(function () {
// Update when document is ready
update_captcha();
// Update when captcha is clicked
$('#captcha').click(update_captcha);
});