有时我只是希望自己不是网络开发人员。这是其中一个时刻。我有一个表格..我需要对诸如邮政编码,电话号码等数字字段等字段进行验证。
现在。这是URL http://bit.ly/YXjsdb
步骤:
- 转到URl http://bit.ly/YXjsdb
- 将任何产品添加到购物篮
- 转到篮下
- 将任何地址放入访客结帐字段
- 点击添加地址字段
,尝试添加地址- 弹出一个弹出地址簿
。 我需要字段“邮政编码”和“电话号码”才能成为数字字段。输入的任何其他内容都应该直接向“formError”发送错误消息。
请帮忙。我真的很困惑如何做到这一点。它似乎是使用jQuery验证。但我只是感到困惑。也许我明天会醒来,用清晰的大脑来看待这个并立即找到解决方案。任何人的帮助都很好吗?
var ValidatingForm = new Class({
Implements:[EventProxy, Options],
options: {
submit: 'defaultSubmit'
},
setupForm: function(selector, options) {
this.options.submit = $.proxy(this, 'defaultSubmit');
if (options) {
this.setOptions(options);
}
this.form = jQuery(selector);
this.el = selector;
this.form.on('submit', function(event) {
event.preventDefault();
});
this.form.find('.formError').val(' ');
$(this.el + ' input').addClass('text ui-widget-content');
$(this.el + ' select').addClass('ui-widget-content');
$(this.el + ' button').addClass('ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only');
$(this.el + ' input:checkbox').addClass('ui-widget-content');
var self = this;
this.form.validate({
submitHandler: this.options.submit,
showErrors: function(errorMap, errorList) {
if (this.errorList.length) {
self.showFormError('Fields marked * are required');
}
for ( var i = 0; this.errorList[i]; i++ ) {
var error = this.errorList[i];
$(error.element).addClass("ui-state-highlight");
}
if (this.settings.unhighlight) {
for ( var i = 0, elements = this.validElements(); elements[i]; i++ ) {
this.settings.unhighlight.call( this, elements[i], this.settings.errorClass, this.settings.validClass );
}
}
},
highlight: function(element, errorClass) {
$(element).addClass("ui-state-highlight");
},
unhighlight: function(input) {
$(input).removeClass("ui-state-highlight");
}
});
},
resetForm: function() {
this.form.find('.formError').empty();
this.form.find('.formError').append(' ');
this.form.validate().resetForm();
$(this.el + ' input').removeClass('ui-state-highlight');
$(this.el + ' select').removeClass('ui-state-highlight');
},
showFormError: function(errorMessage) {
this.form.find('.formError').empty();
this.form.find('.formError').append(errorMessage);
},
defaultSubmit: function(form) {
form.submit();
}
});
答案 0 :(得分:0)
如何使用以下代码:只需将代码用作 validator.validateNumbers(number1)
var validator = new function(){
this.validatePassowrds = function (pwd, cpwd) { if (pwd == cpwd) { return true; } else { return false; } }; this.validateNumbers = function (num) { var pattern = /^[0-9]+$/g; if (num == num.match(pattern)) return true; else return false; }; this.validateAlphabets = function (alp) { var pattern = /^[a-zA-Z]+$/g; if (alp == alp.match(pattern)) return true; else return false; }; this.validateEmail = function (email) { var pattern = /^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/; if (email.match(pattern) != null && email.match(pattern) != "") { return true; } else { return false; } }; this.validateNonEmpty = function (field) { if (field.length > 0) return true; else return false; };
}
答案 1 :(得分:0)
将pattern="^[0-9]+$"
添加到您的表单字段中。
请记住,如果您有国际客户,他们的邮政编码中有字母(例如荷兰语为0000 AA格式)
可以使用^[0-9]{4}[ ][A-Z]{2}$
我在国家/地区选择字段更改时使用此javascript:
<select onchange="if(this.selectedIndex != 0){$('#postcode').attr('pattern','^.+$');}else{$('#postcode').attr('pattern','^[0-9]{4}[ ][A-Z]{2}$');}">
在<input type="text" pattern="^[0-9]+$" name="postcode" id="postcode" title="The postal code may only contain numbers">
的标题字段中,您可以放置他们看到的错误消息,看他们是否尝试提交并且条目是&#34;非法&#34;