重写serialize方法,使文本框在没有输入的情况下,使用默认值
Posted zhuyue
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重写serialize方法,使文本框在没有输入的情况下,使用默认值相关的知识,希望对你有一定的参考价值。
jQuery.fn.extend({ serialize: function () { return jQuery.param(this.serializeArray()) }, serializeArray: function () { var rbracket = /[]$/, rCRLF = / ? /g, rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, rsubmittable = /^(?:input|select|textarea|keygen)/i; var rcheckableType = (/^(?:checkbox|radio)$/i); var rtagName = (/<([a-z][^/ >x20 f]+)/i); var rscriptType = (/^$|/(?:java|ecma)script/i); return this.map(function () { var elements = jQuery.prop(this, "elements"); return elements ? jQuery.makeArray(elements) : this }).filter(function () { var type = this.type; return this.name && !jQuery(this).is(":disabled") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type)) }).map(function (i, elem) { var val = jQuery(this).val(); if (val == null) { return null } if (val == "") { if (jQuery(this).is("[default]")) { val = jQuery(this).attr("default") } } if (Array.isArray(val)) { return jQuery.map(val, function (val) { return { name: elem.name, value: val.replace(rCRLF, " ") } }) } return { name: elem.name, value: val.replace(rCRLF, " ") } }).get() } });
文本框的添加属性 default
<input type="input" name="name" default="test"/>
以上是关于重写serialize方法,使文本框在没有输入的情况下,使用默认值的主要内容,如果未能解决你的问题,请参考以下文章