Changeset 340729
- Timestamp:
- 02/04/2011 05:13:57 PM (15 years ago)
- Location:
- contact-dialog/trunk
- Files:
-
- 2 edited
-
js/jquery.ns-contactdialog.js (modified) (1 diff)
-
lib/nscontactdialog.class.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
contact-dialog/trunk/js/jquery.ns-contactdialog.js
r332953 r340729 1 (function (win, doc, $) { 2 3 $.fn.nsContactDialog = function (options) { 4 5 var contactForm, defaults, dialog, eL, opts, statusMessage; 6 7 defaults = { 8 9 'recaptcha_id' : 'recaptcha', 10 'recaptcha_theme' : 'clean', 11 'url' : '/' 12 13 }; 14 15 opts = $.extend(defaults, options); 16 17 dialog = $('<div />'); 18 19 dialog.dialog({ 20 21 autoOpen: false, 22 modal: true, 23 width: 510 24 25 }); 26 27 contactForm = $(opts.contact_form); 28 29 $('input[type=submit]', contactForm).before($('<div />', { 30 31 id : opts.recaptcha_id 32 33 })); 34 35 statusMessage = $('<div />').appendTo(contactForm); 36 37 contactForm.validate(); 38 39 contactForm.bind('submit', function () { 40 41 statusMessage.text(opts.working_message).addClass('status-message'); 42 43 if (contactForm.valid()) { 44 45 $.getJSON(opts.url, contactForm.serialize() + '&nscontactdialog=' + opts.nscontactdialog + '&nscdaction=' + opts.nscdaction, function (data, textStatus) { 46 47 statusMessage.text(data.message); 48 49 if ('success' === data.response) { 50 51 $(':input', contactForm).attr('readonly', 'readonly'); 52 53 $(':input:not([type=submit])', contactForm).addClass('submitted-success'); 54 55 } else { 56 57 if ('recaptcha' === data.type) { 58 59 Recaptcha.reload(); 60 $('#' + opts.recaptcha_id).focus(); 61 62 } 63 64 if ('email' === data.type) { 65 66 $('input[name=email_address]', contactForm).focus(); 67 68 } 69 70 } 71 72 }); 73 74 } else { 75 76 statusMessage.text(opts.invalid_message); 77 78 } 79 80 return false; 81 82 }) 83 84 contactForm.appendTo(dialog); 85 86 // Get the Recaptcha script. 87 $.getScript('http://www.google.com/recaptcha/api/js/recaptcha_ajax.js', function() { 88 89 Recaptcha.create(opts.recaptcha_api_public_key, 90 91 opts.recaptcha_id, { 92 93 theme: opts.recaptcha_theme, 94 callback: Recaptcha.focus_response_field 95 96 }); 97 98 dialog.bind('dialogclose', function (e, ui) { 99 100 $(':input:not([type=submit])', contactForm).val('').removeAttr('readonly'); 101 $(':input:not([type=submit])', contactForm).removeClass('submitted-success'); 102 Recaptcha.reload(); 103 statusMessage.text(''); 104 statusMessage.removeClass('status-message'); 105 106 }); 107 108 }); 109 110 $('.' + opts.contact_link_class + ', .' + opts.contact_link_class + ' a').bind('click', function () { 111 112 dialog.dialog('open'); 113 114 return false; 115 116 }); 117 118 return this; 119 120 }; 121 122 }(this, document, jQuery, undefined)); 1 (function(c,b,a){a.fn.nsContactDialog=function(e){var d,i,g,f,h,j;i={recaptcha_id:"recaptcha",recaptcha_theme:"clean",url:"/"};h=a.extend(i,e);g=a("<div />");g.dialog({autoOpen:false,modal:true,width:510});d=a(h.contact_form);j=a("<div />").appendTo(d);d.validate();d.bind("submit",function(){j.text(h.working_message).addClass("status-message");if(d.valid()){a.getJSON(h.url,d.serialize()+"&nscontactdialog="+h.nscontactdialog+"&nscdaction="+h.nscdaction,function(k,l){j.text(k.message);if("success"===k.response){a(":input",d).attr("readonly","readonly");a(":input:not([type=submit])",d).addClass("submitted-success")}else{if("recaptcha"===k.type){Recaptcha.reload();a("#"+h.recaptcha_id).focus()}if("email"===k.type){a("input[name=email_address]",d).focus()}}})}else{j.text(h.invalid_message)}return false});d.appendTo(g);a.getScript("http://www.google.com/recaptcha/api/js/recaptcha_ajax.js",function(){Recaptcha.create(h.recaptcha_api_public_key,h.recaptcha_id,{theme:h.recaptcha_theme});g.bind("dialogclose",function(l,k){a(":input:not([type=submit])",d).val("").removeAttr("readonly");a(":input:not([type=submit])",d).removeClass("submitted-success");Recaptcha.reload();j.text("");j.removeClass("status-message")})});a("."+h.contact_link_class+", ."+h.contact_link_class+" a").bind("click",function(){g.dialog("open");return false});return this}}(this,document,jQuery,undefined)); -
contact-dialog/trunk/lib/nscontactdialog.class.php
r340708 r340729 148 148 149 149 wp_enqueue_script('jquery-validate', self::URL . 'js/jquery.validate.min.js', array('jquery'), false); 150 151 wp_enqueue_script('recaptcha', 'http://www.google.com/recaptcha/api/js/recaptcha_ajax.js', array(), false); 152 153 wp_enqueue_script('jquery-nscontact-dialog', self::URL . 'js/jquery.ns-contactdialog.js', array('jquery-validate', 'jquery-ui-custom', 'recaptcha'), false); 150 151 wp_enqueue_script('jquery-nscontact-dialog', self::URL . 'js/jquery.ns-contactdialog.js', array('jquery-validate', 'jquery-ui-custom'), false); 154 152 155 153 wp_enqueue_script('jquery-nscontact-jsonp', get_bloginfo('wpurl') . '?nscontactdialog=' . wp_create_nonce(basename(__FILE__)) . '&nscdaction=add-dialogs', array('jquery-nscontact-dialog'), true);
Note: See TracChangeset
for help on using the changeset viewer.