parsley error on web app
by bradleytrager
HTML
<script src="//cdnjs.cloudflare.com/ajax/libs/knockout/2.2.1/knockout-min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/parsley.js/1.1.16/parsley.min.js"></script>
<form>
<span><strong>Where</strong> to send the distribution</span>
<div class="row-fluid">
<div>
<div class="parsley-container"></div>
<div class="span3">
<input class="span12" type="text" pattern="(^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$)|(^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)+([A-Za-z]|[A-Za-z][A-Za-z\-]*[A-Za-z])$)" id="Recipient_FTP_Address" data-bind="value:ftp.address" placeholder="ftp address" required />
</div>
<div class="note large">FTP Address aka: Host or URL
<br/>i.e.:ftp.jstor.org, 71.23.43.218</div>
</div>
</div>
<div class="row-fluid">
<div class="span3">
<input class="span12" type="text" pattern="(/[a-zA-Z0-9])+" data-bind="value:ftp.path" id="FTP_Path" placeholder="path (optional)" />
</div>
<div class="note large">Path within FTP directory
<br/>i.e.:/www/domain</div>
</div>
<div>
<div class="parsley-container"></div>
<div class="row-fluid">
<div class="span3">
<input class="span12" type="text" id="FTP_Username" data-bind="value:ftp.username" placeholder="username" required />
</div>
<div class="note large">FTP Username
<br /> </div>
</div>
</div>
<div>
<div class="parsley-container"></div>
<div class="row-fluid">
<div class="span3">
<input class="span12" type="text" data-bind="value:ftp.password" id="FTP_Password" placeholder="password" required />
</div>
<div class="note large">FTP Password</div>
</div>
</div>
<button...
JavaScript
$(function () {
$('form').parsley({
errors: {
container: function (element, isRadioOrCheckbox) {
//Use jQuery to select the first preceding div with class="parsley-container"
var $container = element.parent().parent().parent().find("div.parsley-container").first();
return $container;
}
}
});
$("#submit_btn").click(function () {
console.log("submit");
$("form").parsley('validate');
});
});
$(function () {
var vm = new viewModel();
ko.applyBindings(vm);
});
var DAYS_OF_WEEK = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
function coalesceJSON(data, data2) {
var source1 = data.substring(0, data.length - 1);
var source2 = data2.substring(1, data2.length);
return source1 + ',' + source2;
}
function Recipient() {
var self = this;
self.id = ko.observable();
self.name = ko.observable();
self.contactName = ko.observable();
self.contactEmail = ko.observable();
self.contactPhone = ko.observable();
self.version = ko.observable();
}
function parseDate(str) {
var y = str.substr(6, 4),
m = str.substr(0, 2) - 1,
d = str.substr(3, 2);
return new Date(y, m, d);
}
function pluralizeString(number, baseString) {
if (number > 1) {
return baseString + "s";
} else {
return baseString;
}
}
/*Takes an array and creates a comma separated string with "and" at
the end instead of a comma*/
function pluralizeArray(array) {
var string = array.join(", ");
if (array.length > 1) {
var lastComma = string.lastIndexOf(",");
var partOne = string.substring(0, lastComma);
var partTwo = string.substring(lastComma + 1, string.length);
var pluralizedString = partOne + " and" + partTwo;
return pluralizedString;
} else {
return string;
}
}
function viewModel() {
var self = this;
...