引入jQuery、bootstrap、bootstrapValidator
$(function(){ //儲存原始的bootstrapValidator var overwrite = $.fn.bootstrapValidator; //重載bootstrapValidator $.fn.bootstrapValidator = function(options){ //恢複原來的bootstrapValidator,因為其加了很多資料是不能丟失的 $.fn.bootstrapValidator = overwrite; //這裡有兩種做法,第一種是直接修改arguments內容,使其包含不能輸入&的驗證,然後調用即可; //第二種是先使用arguments來初始化,然後使用調用bootstrapValidator的函數來給非Regex驗證的項添加不能輸入&的驗證 //這裡我們使用了第二中。 var validtor = overwrite.apply(this,arguments); if($.type(arguments[0]) == "object"){ var vtor = this.data("bootstrapValidator"), //過濾出輸入框表單項 fileds = this.find("input[name][type='hidden'],input[name][type='password'],input[name][type='text'],textarea[name]").not(":disabled,[type='hidden']"); fileds.each(function(){ //本身沒有正則驗證才添加不能輸入&的驗證 if(!vtor.getOptions($(this).attr('name'),'regexp','regexp')){ vtor.addField($(this).attr('name'), { validators: { regexp: { regexp: /^[^&]*$/, message: "不能包含&字元" } } }) } }) } return validtor; } })