选中复选框时启用确认框按钮 jquery
Enable buttons of confirmbox when checkbox checked in jquery
这是 functions.php 中的代码 file.There 是输入的确认框 value.When 我按确定按钮,值被保存。但我希望用户先选中复选框,然后值将是 entered.This 我所做的一切,但问题在于,当我在没有选中复选框的情况下按下确定按钮时,出现警报并同时隐藏确认框。我希望确认框在警报消失后保持其位置。
var mess ="abc";
jQuery.confirm({
'title' : '<?php _e('Terms','Theme'); ?>',
'message' : mess ,
'buttons' : {
'<?php _e('OK','Theme'); ?>' : {
'class' : 'button1',
'action': function()
{
if(jQuery('#check').is(":checked")){
post_ok = 1;
jQuery("#my_form_"+id).submit();
return true;
}
else{
alert("select terms and conditions first.");
}
}
},
'<?php _e('No','Theme'); ?>' : {
'class' : 'button2',
'action': function(){ return false; }
}
}
});
confirm.js
(function($){
$.confirm = function(params){
if($('#confirmOverlay').length){
// A confirm is already shown on the page:
return false;
}
var buttonHTML = '';
$.each(params.buttons,function(name,obj){
// Generating the markup for the buttons:
buttonHTML += '<a href="#" class="button '+obj['class']+'">'+name+'<span></span></a>';
if(!obj.action){
obj.action = function(){};
}
});
var markup = [
'<div id="confirmOverlay">',
'<div id="confirmBox">',
'<h1>',params.title,'</h1>',
'<p>',params.message,'</p>',
'<div id="confirmButtons">',
buttonHTML,
'</div></div></div>'
].join('');
$(markup).hide().appendTo('body').fadeIn();
var buttons = $('#confirmBox .button'),
i = 0;
$.each(params.buttons,function(name,obj){
buttons.eq(i++).click(function(){
// Calling the action attribute when a
// click occurs, and hiding the confirm.
obj.action();
$.confirm.hide();
return false;
});
});
}
$.confirm.hide = function(){
$('#confirmOverlay').fadeOut(function(){
$(this).remove();
});
}
})(jQuery);
此问题已解决。
我为 button1 分配了一个 ID 并应用 属性(禁用)。
var agree_button = document.getElementById('agree_button');
jQuery.confirm({
'title' : '<?php _e('Terms','Theme'); ?>',
'message' : mess ,
'buttons' : {
'<?php _e('OK','Theme'); ?>' : {
'class' : 'button1',
'id' : 'agree_button',
'action': function()
{
if(jQuery('#check').is(":checked")){
my_post_ok = 1;
jQuery("#my_form_"+id).submit();
return true;
}
else{
alert("select terms and conditions first.");
agree_button.disabled = false;
}
}
},
'<?php _e('No','Theme'); ?>' : {
'class' : 'button2',
'action': function(){ return false; }
}
}
});
这是 functions.php 中的代码 file.There 是输入的确认框 value.When 我按确定按钮,值被保存。但我希望用户先选中复选框,然后值将是 entered.This 我所做的一切,但问题在于,当我在没有选中复选框的情况下按下确定按钮时,出现警报并同时隐藏确认框。我希望确认框在警报消失后保持其位置。
var mess ="abc";
jQuery.confirm({
'title' : '<?php _e('Terms','Theme'); ?>',
'message' : mess ,
'buttons' : {
'<?php _e('OK','Theme'); ?>' : {
'class' : 'button1',
'action': function()
{
if(jQuery('#check').is(":checked")){
post_ok = 1;
jQuery("#my_form_"+id).submit();
return true;
}
else{
alert("select terms and conditions first.");
}
}
},
'<?php _e('No','Theme'); ?>' : {
'class' : 'button2',
'action': function(){ return false; }
}
}
});
confirm.js
(function($){
$.confirm = function(params){
if($('#confirmOverlay').length){
// A confirm is already shown on the page:
return false;
}
var buttonHTML = '';
$.each(params.buttons,function(name,obj){
// Generating the markup for the buttons:
buttonHTML += '<a href="#" class="button '+obj['class']+'">'+name+'<span></span></a>';
if(!obj.action){
obj.action = function(){};
}
});
var markup = [
'<div id="confirmOverlay">',
'<div id="confirmBox">',
'<h1>',params.title,'</h1>',
'<p>',params.message,'</p>',
'<div id="confirmButtons">',
buttonHTML,
'</div></div></div>'
].join('');
$(markup).hide().appendTo('body').fadeIn();
var buttons = $('#confirmBox .button'),
i = 0;
$.each(params.buttons,function(name,obj){
buttons.eq(i++).click(function(){
// Calling the action attribute when a
// click occurs, and hiding the confirm.
obj.action();
$.confirm.hide();
return false;
});
});
}
$.confirm.hide = function(){
$('#confirmOverlay').fadeOut(function(){
$(this).remove();
});
}
})(jQuery);
此问题已解决。 我为 button1 分配了一个 ID 并应用 属性(禁用)。
var agree_button = document.getElementById('agree_button');
jQuery.confirm({
'title' : '<?php _e('Terms','Theme'); ?>',
'message' : mess ,
'buttons' : {
'<?php _e('OK','Theme'); ?>' : {
'class' : 'button1',
'id' : 'agree_button',
'action': function()
{
if(jQuery('#check').is(":checked")){
my_post_ok = 1;
jQuery("#my_form_"+id).submit();
return true;
}
else{
alert("select terms and conditions first.");
agree_button.disabled = false;
}
}
},
'<?php _e('No','Theme'); ?>' : {
'class' : 'button2',
'action': function(){ return false; }
}
}
});