⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.js

📁 jquery+prototype+插件+源码+资料 非常的东西
💻 JS
📖 第 1 页 / 共 3 页
字号:
				max: 12				},			lastname: {				minlength: 2,				maxlength: 8			}		}	});	var rangeRules = v.rules($("#firstnamec")[0]);	equals( "range", rangeRules[0].method );	equals( 5, rangeRules[0].parameters[0] );	equals( 12, rangeRules[0].parameters[1] );		var lengthRules = v.rules($("#lastnamec")[0]);	equals( "rangelength", lengthRules[0].method );	equals( 2, lengthRules[0].parameters[0] );	equals( 8, lengthRules[0].parameters[1] );	jQuery.validator.autoCreateRanges = false;});test("rules(), gurantee that required is at front", function() {	$("#testForm1").validate();	$("#v2").validate();	$("#subformRequired").validate();	function flatRules(element) {		return jQuery.map($(element).rules(), function(x) { return x.method }).join(" "); 	}	equals( "required minlength", flatRules("#firstname") );	equals( "required maxlength minlength", flatRules("#v2-i6") );	equals( "required maxlength", flatRules("#co_name") );		reset();	jQuery.validator.autoCreateRanges = true;	$("#v2").validate();	equals( "required rangelength", flatRules("#v2-i6") );		$("#subformRequired").validate({		rules: {			co_name: "required"		}	});	$("#co_name").removeClass();	equals( "required maxlength", flatRules("#co_name") );	jQuery.validator.autoCreateRanges = false;});test("rules(), evaluate dynamic parameters", function() {	expect(3);	var v = $("#testForm1clean").validate({		rules: {			firstname: {				min: function(element) {					equals( $("#firstnamec")[0], element );					return 12;				}			}		}	});	var rules = v.rules($("#firstnamec")[0]);	equals( "min", rules[0].method );	equals( 12, rules[0].parameters );});test("rules(), class and attribute combinations", function() {	function compare(a, b, msg) {		var ret = true;		if ( a && b && a.length != undefined && a.length == b.length ) {			for ( var i = 0; i < a.length; i++ )				for(var key in a[i]) {					if (a[i][key].length) {						for (var arrayKey in a[i][key]) {							if (a[i][key][arrayKey] != b[i][key][arrayKey]) {								ret = false;							}
						}
					} else if (a[i][key] != b[i][key]) {						ret = false					}				}		} else			ret = false;		ok( ret, msg + " expected: " + serialArray(b) + " result: " + serialArray(a) );	}	$.validator.addMethod("customMethod1", function() {		return false;	}, "");	$.validator.addMethod("customMethod2", function() {		return false;	}, "");	$("#v2").validate({		rules: {			'v2-i7': {				required: true,				minlength: 2,				customMethod: true			}		}
	});	compare( $("#v2-i1").rules(), [{ method: "required", parameters: true }]);	compare( $("#v2-i2").rules(), [{ method: "required", parameters: true }, { method: "email", parameters: true }]);	compare( $("#v2-i3").rules(), [{ method: "url", parameters: true }]);	compare( $("#v2-i4").rules(), [{ method: "required", parameters: true }, { method: "minlength", parameters: 2 }]);	jQuery.validator.autoCreateRanges = true;	compare( $("#v2-i5").rules(), [{ method: "required", parameters: true }, { method: "customMethod1", parameters: "123" }, { method: "rangelength", parameters: [2, 5] }]);	compare( $("#v2-i6").rules(), [{ method: "required", parameters: true }, { method: "customMethod2", parameters: true }, { method: "rangelength", parameters: [2, 5] }]);	jQuery.validator.autoCreateRanges = false;	compare( $("#v2-i7").rules(), [{ method: "required", parameters: true }, { method: "minlength", parameters: 2 }, { method: "customMethod", parameters: true }]);		delete $.validator.methods.customMethod1;	delete $.validator.messages.customMethod1;	delete $.validator.methods.customMethod2;	delete $.validator.messages.customMethod2;});test("defaultMessage(), empty title is ignored", function() {	var v = $("#userForm").validate();	equals( "This field is required.", v.defaultMessage($("#username")[0], "required") );});test("formatAndAdd", function() {	expect(4);	var v = $("#form").validate();	var fakeElement = { form: { id: "foo" }, name: "bar" };	v.formatAndAdd(fakeElement, {method: "maxLength", parameters: 2})	equals( "Please enter no more than 2 characters.", v.errorList[0].message );	equals( "bar", v.errorList[0].element.name );		v.formatAndAdd(fakeElement, {method: "rangeValue", parameters:[2,4]})	equals( "Please enter a value between 2 and 4.", v.errorList[1].message );		v.formatAndAdd(fakeElement, {method: "rangeValue", parameters:[0,4]})	equals( "Please enter a value between 0 and 4.", v.errorList[2].message );});test("formatAndAdd2", function() {	expect(3);	var v = $("#form").validate();	var fakeElement = { form: { id: "foo" }, name: "bar" };	jQuery.validator.messages.test1 = function(param, element) {		equals( v, this );		equals( 0, param );		return "element " + element.name + " is not valid";	};	v.formatAndAdd(fakeElement, {method: "test1", parameters: 0})	equals( "element bar is not valid", v.errorList[0].message );});test("error containers, simple", function() {	expect(14);	var container = $("#simplecontainer");	var v = $("#form").validate({		errorLabelContainer: container,		showErrors: function() {			container.find("h3").html( jQuery.format("There are {0} errors in your form.", this.size()) );			this.defaultShowErrors();		}	});		v.prepareForm();	ok( v.valid(), "form is valid" );	equals( 0, container.find("label").length, "There should be no error labels" );	equals( "", container.find("h3").html() );		v.prepareForm();	v.errorList = [{message:"bar", element: {name:"foo"}}, {message: "necessary", element: {name:"required"}}];	ok( !v.valid(), "form is not valid after adding errors manually" );	v.showErrors();	equals( 2, container.find("label").length, "There should be two error labels" );	ok( container.is(":visible"), "Check that the container is visible" );	container.find("label").each(function() {		ok( $(this).is(":visible"), "Check that each label is visible" );	});	equals( "There are 2 errors in your form.", container.find("h3").html() );		v.prepareForm();	ok( v.valid(), "form is valid after a reset" );	v.showErrors();	equals( 2, container.find("label").length, "There should still be two error labels" );	ok( container.is(":hidden"), "Check that the container is hidden" );	container.find("label").each(function() {		ok( $(this).is(":hidden"), "Check that each label is hidden" );	});});test("error containers, with labelcontainer", function() {	expect(28);	var container = $("#container"),		labelcontainer = $("#labelcontainer");	var v = $("#form").validate({		errorContainer: container,		errorLabelContainer: labelcontainer,		wrapper: "li"	});		v.prepareForm();	ok( v.valid(), "form is valid" );	equals( 0, container.find("label").length, "There should be no error labels in the container" );	equals( 0, labelcontainer.find("label").length, "There should be no error labels in the labelcontainer" );	equals( 0, labelcontainer.find("li").length, "There should be no lis labels in the labelcontainer" );		v.prepareForm();	v.errorList = [{message:"bar", element: {name:"foo"}}, {name: "required", message: "necessary", element: {name:"required"}}];	ok( !v.valid(), "form is not valid after adding errors manually" );	v.showErrors();	equals( 0, container.find("label").length, "There should be no error label in the container" );	equals( 2, labelcontainer.find("label").length, "There should be two error labels in the labelcontainer" );	equals( 2, labelcontainer.find("li").length, "There should be two error lis in the labelcontainer" );	ok( container.is(":visible"), "Check that the container is visible" );	ok( labelcontainer.is(":visible"), "Check that the labelcontainer is visible" );	labelcontainer.find("label").each(function() {		ok( $(this).is(":visible"), "Check that each label is visible1" );		equals( "li", $(this).parent()[0].tagName.toLowerCase(), "Check that each label is wrapped in an li" );		ok( $(this).parent("li").is(":visible"), "Check that each parent li is visible" );	});			v.prepareForm();	ok( v.valid(), "form is not valid after adding errors manually" );	v.showErrors();	equals( 0, container.find("label").length, "There should be no error label in the container" );	equals( 2, labelcontainer.find("label").length, "There should be two error labels in the labelcontainer" );	equals( 2, labelcontainer.find("li").length, "There should be two error lis in the labelcontainer" );	ok( container.is(":hidden"), "Check that the container is hidden" );	ok( labelcontainer.is(":hidden"), "Check that the labelcontainer is hidden" );	labelcontainer.find("label").each(function() {		ok( $(this).is(":hidden"), "Check that each label is visible2" );		equals( "li", $(this).parent()[0].tagName.toLowerCase(), "Check that each label is wrapped in an li" );		ok( $(this).parent("li").is(":hidden"), "Check that each parent li is visible" );	});});test("errorcontainer, show/hide only on submit", function() {	expect(12);	var container = $("#container");	var labelContainer = $("#labelcontainer");	var v = $("#testForm1").bind("invalid-form.validate", function() {		ok( true, "invalid-form event triggered called" );	}).validate({		errorContainer: container,		errorLabelContainer: labelContainer,		showErrors: function() {			container.html( jQuery.format("There are {0} errors in your form.", this.numberOfInvalids()) );			ok( true, "showErrors called" );			this.defaultShowErrors();		}	});	equals( "", container.html(), "must be empty" );	equals( "", labelContainer.html(), "must be empty" );	// validate whole form, both showErrors and invalidHandler must be called once	// preferably invalidHandler first, showErrors second	ok( !v.form(), "invalid form" );	equals( 2, labelContainer.find("label").length );	equals( "There are 2 errors in your form.", container.html() );	ok( labelContainer.is(":visible"), "must be visible" );	ok( container.is(":visible"), "must be visible" );		$("#firstname").val("hix").keyup();	$("#testForm1").triggerHandler("keyup", [jQuery.event.fix({ type: "keyup", target: $("#firstname")[0] })]);	equals( 1, labelContainer.find("label:visible").length );	equals( "There are 1 errors in your form.", container.html() );});test("findByName()", function() {	isSet( new $.validator({}, document.getElementById("form")).findByName(document.getElementById("radio1").name), $("#form").find("[name=radio1]") );});test("focusInvalid()", function() {	expect(1);	var inputs = $("#testForm1 input").focus(function() {		equals( inputs[0], this, "focused first element" );	});	var v = $("#testForm1").validate();	v.form();	// have to explicitly show input elements with error class, they are hidden by testsuite styles	inputs.show();	v.focusInvalid();});test("findLastActive()", function() {	expect(3);	var v = $("#testForm1").validate();	ok( !v.findLastActive() );	v.form();	v.focusInvalid();	ok( !v.findLastActive() );	try {		$("#testForm1").triggerEvent("focusin", $("#testForm1 input:last")[0]);		v.focusInvalid();		equals( lastInput, v.findLastActive() );	} catch(e) {		ok( true, "Ignore in IE" );	}});test("validating multiple checkboxes with 'required'", function() {	expect(3);	var checkboxes = $("#form input[@name=check3]").attr("checked", false);	equals(5, checkboxes.size());	var v = $("#form").validate({		rules: {			check3: "required"		}	});	v.form();	equals(1, v.size());	checkboxes.filter(":last").attr("checked", true);	v.form();	equals(0, v.size());});test("refresh()", function() {	var counter = 0;	function add() {		$("<input class='{required:true}' name='list" + counter++ + "' />").appendTo("#testForm2");	}	function errors(expected, message) {		equals(expected, v.size(), message );	}	var v = $("#testForm2").validate();	v.form();	errors(1);	add();	v.form();	errors(2);	add();	v.form();	errors(3);	$("#testForm2 input[@name=list1]").remove();	v.form();	errors(2);	add();	v.form();	errors(3);	$("#testForm2 input[@name^=list]").remove();	v.form();	errors(1);	$("#agb").attr("disabled", true);	v.form();	errors(0);	$("#agb").attr("disabled", false);	v.form();	errors(1);});test("idOrName()", function() {	expect(4);	var v = $("#testForm1").validate();	equals( "form8input", v.idOrName( $("#form8input")[0] ) );	equals( "check", v.idOrName( $("#form6check1")[0] ) );	equals( "agree", v.idOrName( $("#agb")[0] ) );	equals( "button", v.idOrName( $("#form :button")[0] ) );});test("resetForm()", function() {	function errors(expected, message) {		equals(expected, v.size(), message );	}	var v = $("#testForm1").validate();	v.form();	errors(2);	$("#firstname").val("hiy");	v.resetForm();	errors(0);	equals("", $("#firstname").val(), "form plugin is included, therefor resetForm must also reset inputs, not only errors");});test("ajaxSubmit", function() {	expect(1);	stop();	$("#user").val("Peter");	$("#password").val("foobar");	jQuery("#signupForm").validate({		submitHandler: function(form) {			jQuery(form).ajaxSubmit({				success: function(response) {					equals("Hi Peter, welcome back.", response);					start();				}			});		}	});	jQuery("#signupForm").triggerHandler("submit");});module("misc");test("success option", function() {	expect(7);	equals( "", $("#firstname").val() );	var v = $("#testForm1").validate({		success: "valid"	});	var label = $("#testForm1 label");	ok( label.is(".error") );	ok( !label.is(".valid") );	v.form();	ok( label.is(".error") );	ok( !label.is(".valid") );	$("#firstname").val("hi");	v.form();	ok( label.is(".error") );	ok( label.is(".valid") );});test("success option2", function() {	expect(5);	equals( "", $("#firstname").val() );	var v = $("#testForm1").validate({

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -