我正在尝试为表单添加一些验证。我有一个jQuery函数正在做我想要的:
jQuery('#post').submit(function() {
if (jQuery("#set-post-thumbnail").find('img').size() > 0) {
jQuery('#ajax-loading').hide();
jQuery('#publish').removeClass('button-primary-disabled');
return true;
}else{
alert("Please set a Featured Image!");
jQuery('#ajax-loading').hide();
jQuery('#publish').addClass('button-primary-disabled');
return false;
}
return false;
});
但是,我想更改它,以便仅当选择页面上其他位置的单选按钮时才运行此功能。所以我尝试了这个:
if (jQuery('#top').checked) {
jQuery('#post').submit(function() {
if (jQuery("#set-post-thumbnail").find('img').size() > 0) {
jQuery('#ajax-loading').hide();
jQuery('#publish').removeClass('button-primary-disabled');
return true;
}else{
alert("Please set a Featured Image!");
jQuery('#ajax-loading').hide();
jQuery('#publish').addClass('button-primary-disabled');
return false;
}
return false;
});
}
这不起作用 - 即使检查了#top,也不会调用该函数。有谁能解释为什么?我已经习惯了PHP,而JavaScript经常会把曲线球扔给我。
答案 0 :(得分:1)
firebug或Chrome控制台告诉你什么?你可以尝试这样的事情:
$('#top').is(':checked')
(感谢RET):
jQuery('#post').submit(function() {
if ($('#top').is(':checked')) {
if (jQuery("#set-post-thumbnail").find('img').size() > 0) {
jQuery('#ajax-loading').hide();
jQuery('#publish').removeClass('button-primary-disabled');
return true;
}else{
alert("Please set a Featured Image!");
jQuery('#ajax-loading').hide();
jQuery('#publish').addClass('button-primary-disabled');
return false;
}
}
return false;
});
答案 1 :(得分:0)
试
$('#top').is(':checked')
但是函数submit只绑定函数并在每次单击提交时调用它。 所以你必须把检查的检查放在提交功能
中 jQuery('#post').submit(function() {
if(!$('top').is(':checked')){ return };
if (jQuery("#set-post-thumbnail").find('img').size() > 0) {
jQuery('#ajax-loading').hide();
jQuery('#publish').removeClass('button-primary-disabled');
return true;
}
alert("Please set a Featured Image!");
jQuery('#ajax-loading').hide();
jQuery('#publish').addClass('button-primary-disabled');
return false;
});
答案 2 :(得分:0)
是的,那个逻辑不会完全符合你的希望。尝试类似:
jQuery('#post').submit(function() {
if ($('#top').is(':checked')) {
// all your existing code
我可能错了,但我认为@greener给出的答案不会起作用,因为只有在页面创建时检查#top
时才会声明提交函数。