Skip to content

Commit 310bdc0

Browse files
authored
Merge pull request #87 from BoldGrid/issue-60
Fix validation and clarificatiopn of website_url field. Fixes #60
2 parents 213fc77 + d2ef6b4 commit 310bdc0

File tree

2 files changed

+19
-14
lines changed

2 files changed

+19
-14
lines changed

assets/wpuf/js/frontend-form.js

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -477,13 +477,11 @@
477477
WP_User_Frontend.removeErrors(self);
478478
WP_User_Frontend.removeErrorNotice(self);
479479

480-
// ===== Validate: Text and Textarea ========
480+
// Validate: Required Fields
481481
var required = self.find('[data-required="yes"]:visible');
482482

483483
required.each(function(i, item) {
484-
// temp_val = $.trim($(item).val());
485484

486-
// console.log( $(item).data('type') );
487485
var data_type = $(item).data('type')
488486
val = '';
489487

@@ -730,9 +728,15 @@
730728
var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);
731729
return pattern.test(email);
732730
},
733-
731+
/**
732+
* Validate a url.
733+
*
734+
* While we could use the standard HTML5 form validator for urls, this regex does a more thorough job.
735+
*
736+
* @link https://gist.github.com/dperini/729294
737+
*/
734738
isValidURL: function(url) {
735-
var urlregex = new RegExp("^(http:\/\/www.|https:\/\/www.|ftp:\/\/www.|www.|http:\/\/|https:\/\/){1}([0-9A-Za-z]+\.)");
739+
var urlregex = new RegExp(/^(?:(?:https?|ftp):\/\/)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/\S*)?$/);
736740
return urlregex.test(url);
737741
},
738742

includes/fields/class-field-url.php

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,16 @@ public function render( $field_settings, $form_id ) {
2626

2727
<div class="wpuf-fields">
2828
<input
29-
id="<?php echo esc_attr( $field_settings['name'] ) . '_' . esc_attr( $form_id ); ?>"
30-
type="url" class="url <?php echo ' wpuf_'. esc_attr( $field_settings['name'] ).'_'. esc_attr( $form_id ); ?>"
31-
data-duplicate="<?php echo esc_attr( $field_settings['duplicate'] ) ? esc_attr( $field_settings['duplicate'] ) : 'no'; ?>"
32-
data-required="<?php echo esc_attr( $field_settings['required'] ) ?>"
33-
data-type="text"
34-
name="<?php echo esc_attr( $field_settings['name'] ); ?>"
35-
placeholder="<?php echo esc_attr( $field_settings['placeholder'] ); ?>"
36-
value="<?php echo esc_attr( $value ); ?>" size="<?php echo esc_attr( $field_settings['size'] ); ?>"
37-
autocomplete="url"
29+
title = "<?php echo esc_attr__( 'The URL must contain a protocol i.e. http://example.com', 'weforms' ); ?>"
30+
id = "<?php echo esc_attr( $field_settings['name'] ) . '_' . esc_attr( $form_id ); ?>"
31+
type = "url" class="url <?php echo ' wpuf_'. esc_attr( $field_settings['name'] ).'_'. esc_attr( $form_id ); ?>"
32+
data-duplicate = "<?php echo esc_attr( $field_settings['duplicate'] ) ? esc_attr( $field_settings['duplicate'] ) : 'no'; ?>"
33+
data-required = "<?php echo esc_attr( $field_settings['required'] ) ?>"
34+
data-type = "url"
35+
name = "<?php echo esc_attr( $field_settings['name'] ); ?>"
36+
placeholder = "<?php echo esc_attr( $field_settings['placeholder'] ); ?>"
37+
value = "<?php echo esc_attr( $value ); ?>" size="<?php echo esc_attr( $field_settings['size'] ); ?>"
38+
autocomplete = "url"
3839
/>
3940
<?php $this->help_text( $field_settings ); ?>
4041
</div>

0 commit comments

Comments
 (0)