통합 프론트 검증 프레임 워 크
34312 단어 프레임
http://www.17sucai.com/pins/312.html
2: 프로젝트 에 가입
Validform. js 와 그림 을 프로젝트 디 렉 터 리 에 추가 해 야 합 니 다.
3: jsp 페이지 가입
가 져 온 가방: (제출 할 때 모든 폼 을 검증 합 니 다. submit 가 없 으 면 btnSubmit 를 사용 합 니 다)
<script type="text/javascript"
src="resources/tableValidation/tableValid.js"></script> // js
<script type="text/javascript">
$(function() {
$(".aa:last").Validform({ // “aa” ,aa from , action
tiptype : 2, //
btnSubmit:"#btn_sub", // from, button, id
callback : function(data) {
if (data.status == "y") {
setTimeout(function() {
$.Hidemsg();
}, 2000);
}
}
});
})
</script>
<style type="text/css">
@import "${projectPath}/resources/tableValidation/valid.css"; // css
</style>
폼 항목 에 컨트롤 을 추가 해 야 합 니 다 (ignore = "ignore" 빈 값 검사 가 실 효 됩 니 다)
<tr>
<td> :</td>
<td><s:input path="channelname" class="form-control"
placeholder=" rcms "
datatype="channelname" // , , nullmsg
nullmsg=" " //
errormsg=" rcms " /> //
<c:out value="${channelnameerror}"></c:out>
</td>
<td><div class="Validform_checktip"> </div> //
</td>
</tr>
4: 플러그 인 이 수 요 를 만족 시 키 지 못 하기 때문에 datatype 을 'channelname' 으로 하 는 인증 (부분) 을 스스로 추가 해 야 합 니 다.
$.fn.Validform.sn={
defaults:{
tiptype:1,
ajaxPost:false
},
regcheck:function(type,gets){
var reg;
switch(type){
case "*":
return true;
case "positiveinteger": /* */
reg= /^[0-9]*[1-9][0-9]*$/;
return reg.test(gets);
case "channelname": /* */
reg1= /^[a-z0-9][a-z0-9]*:\/\/[a-z0-9][-a-z0-9_]*(\.[a-z0-9][-_a-z0-9]*){1,}$/;
reg2= /^[a-z0-9][a-z0-9]*:\/\/[*]\.[a-z0-9][-a-z0-9]*(\.[a-z0-9][-a-z0-9]*){1,}$/;
return reg1.test(gets)||reg2.test(gets);
default:
return false;
}
},
5: 특수 해 야 한다 면 checkform: function (obj, parentobj, tiptype, show) 을 다시 써 야 합 니 다. (예 를 들 어 첫 번 째 텍스트 상자 의 값 이 두 번 째 보다 크다 고 판단 해 야 합 니 다)
jsp 의 내용
<tr>
<td> :</td>
<td><s:input path="uplimit" class="form-control"
placeholder=" (MB)" datatype="positiveinteger" nullmsg=" "
errormsg=" " /></td>
<td><div class="Validform_checktip"> </div>
</td>
</tr>
<tr>
<td> :</td>
<td><s:input path="downlimit" class="form-control"
placeholder=" (MB)"
datatype="*" // *,js true
greaterthan="uplimit" //greaterthan , id
nullmsg=" "
errormsg=" , " />
</td>
<td><div class="Validform_checktip"> </div>
</td>
</tr>
Validform. js 의 checkform: function 에 추가
if(obj.attr("greaterthan")){
var theother=parentobj.find("input[name="+obj.attr("greaterthan")+"]:first");
var reg= /^[0-9]*[1-9][0-9]*$/;
if(obj.val()>=theother.val()||!reg.test(obj.val())){
errorobj=obj;
this.showmsg(errormsg,tiptype,{obj:obj},show);
return false;
}
}
전체 코드
tableValid.js
/*
Validform version 2.0
For more information, you can visit http://www.rjboy.cn
By sean at April 7, 2010 - April 22, 2011
Demo:
$(".demoform").Validform({//$(".demoform") , from ;
btnSubmit:"#btn_sub", //#btn_sub ; form submit ;
tiptype:1, // 1=>pop box,2=>side tip, 1;
postonce:true, // ,true , ;
ajaxPost:true, // ajax , false, action ;
callback:function(data){
// data json ,{"info":"demo info","status":"y"}
//info: ;
//status: , 。 "y" ,"n" , ajax_post.php , callback ;
// ajax_post.php , ;
// ;
}
});
*/
(function($){
var errorobj=null,// ;
msgobj,// pop box object
msghidden=true, // msgbox hidden?
tipmsg={// ;
w:" !",
r:" !",
c:" …",
s:" !",
v:" , …",
p:" …"
},
creatMsgbox=function(){
if($("#Validform_msg").length!==0){return false;}
msgobj=$('<div id="Validform_msg"><div class="Validform_title"> <a class="Validform_close" href="javascript:void(0);">χ</a></div><div class="Validform_info"></div><div class="iframe"><iframe frameborder="0" scrolling="no" height="100%" width="100%"></iframe></div></div>').appendTo("body");// ;
msgobj.find("a.Validform_close").click(function(){
msgobj.hide();
msghidden=true;
if(errorobj){
errorobj.focus().addClass("Validform_error");
}
return false;
}).focus(function(){this.blur();});
$(window).bind("scroll resize",function(){
if(!msghidden){
var left=($(window).width()-msgobj.width())/2;
var top=($(window).height()-msgobj.height())/2;
var topTo=(document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop)+(top>0?top:0);
msgobj.animate({
left : left,
top : topTo
},{ duration:400 , queue:false });
}
});
};
$.fn.Validform=function(settings){
var defaults={};
settings=$.extend({},$.fn.Validform.sn.defaults,settings);
this.each(function(){
var $this=$(this);
var posting=false; // ;
$this.find("[tip]").each(function(){// tip , ;
var defaultvalue=$(this).attr("tip");
var altercss=$(this).attr("altercss");
$(this).focus(function(){
if($(this).val()==defaultvalue){
$(this).val('');
if(altercss){$(this).removeClass(altercss);}
}
}).blur(function(){
if($.trim($(this).val())===''){
$(this).val(defaultvalue);
if(altercss){$(this).addClass(altercss);}
}
});
});
// blur ;
$this.find("[datatype]").blur(function(){
var flag=true;
flag=$.fn.Validform.sn.checkform($(this),$this,settings.tiptype,"hide");
if(!flag){return false;}
if(typeof(flag)!="boolean"){// radio, checkbox,
// select ;
$(this).removeClass("Validform_error");
return false;
}
flag=$.fn.Validform.sn.regcheck($(this).attr("datatype"),$(this).val());
if(!flag){
if($(this).attr("ignore")==="ignore" && ( $(this).val()==="" || $(this).val()===$(this).attr("tip") )){
if(settings.tiptype==2){
$(this).parent().next().find(".Validform_checktip").removeClass().addClass("Validform_checktip").text($(this).attr("tip"));
}
flag=true;
return true;
}
errorobj=$(this);
$.fn.Validform.sn.showmsg($(this).attr("errormsg")||tipmsg.w,settings.tiptype,{obj:$(this)},"hide"); // tiptype=1 , "hide" ,tiptype=2 “hide” ;
}else{
if($(this).attr("ajaxurl")){
var inputobj=$(this);
inputobj.attr("valid",tipmsg.c);
$.fn.Validform.sn.showmsg(tipmsg.c,settings.tiptype,{obj:inputobj,type:1},"hide");
$.ajax({
type: "POST",
url: inputobj.attr("ajaxurl"),
data: "param="+$(this).val(),
dataType: "Json",
success: function(data){
if(data.Data=="success"){
inputobj.attr("valid","true");
$.fn.Validform.sn.showmsg(tipmsg.r,settings.tiptype,{obj:inputobj,type:2},"hide");
}else{
inputobj.attr("valid",data.Message);
errorobj=inputobj;
$.fn.Validform.sn.showmsg(data.Message,settings.tiptype,{obj:inputobj});
}
}
});
}else{
errorobj=null;
$.fn.Validform.sn.showmsg(tipmsg.r,settings.tiptype,{obj:$(this),type:2},"hide");
}
}
});
// subform
var subform=function(){
var flag=true;
if(posting){return false;}
$this.find("[datatype]").each(function(){
flag=$.fn.Validform.sn.checkform($(this),$this,settings.tiptype);
if(!flag){
errorobj.focus();
return false;
}
if(typeof(flag)!="boolean"){
flag=true;
return true;
}
flag=$.fn.Validform.sn.regcheck($(this).attr("datatype"),$(this).val());
if(!flag){
if($(this).attr("ignore")==="ignore" && ( $(this).val()==="" || $(this).val()===$(this).attr("tip") )){
flag=true;
return true;
}
errorobj=$(this);
errorobj.focus();
$.fn.Validform.sn.showmsg($(this).attr("errormsg")||tipmsg.w,settings.tiptype,{obj:$(this)});
return false;
}
if($(this).attr("ajaxurl")){
if($(this).attr("valid")!="true"){
flag=false;
var thisobj=$(this);
errorobj=thisobj;
errorobj.focus();
$.fn.Validform.sn.showmsg(thisobj.attr("valid") || tipmsg.v,settings.tiptype,{obj:thisobj});
if(!msghidden || settings.tiptype==2){
setTimeout(function(){
thisobj.trigger("blur");
},2000);
}
return false;
}else{
$.fn.Validform.sn.showmsg(tipmsg.r,settings.tiptype,{obj:$(this),type:2},"hide");
flag=true;
}
}
});
if(flag && !posting){
errorobj=null;
if(settings.postonce){posting=true;}
if(settings.ajaxPost){
$.fn.Validform.sn.showmsg(tipmsg.p,settings.tiptype,{obj:$(this)},"alwaysshow");// “alwaysshow” tiptye 1 2 ;
$.ajax({
type: "POST",
dataType:"json",
url: $this.attr("action"),
data: $this.serialize(),
success: function(data){
$.fn.Validform.sn.showmsg(data.info,settings.tiptype,{obj:$(this)},"alwaysshow");
(settings.callback)(data);
}
});
return false;
}else{
if(settings.is_submit){
$this.get(0).submit();
}
}
}
};
settings.btnSubmit && $this.find(settings.btnSubmit).bind("click",subform);
$this.submit(function(){
subform();
return false;
});
});
// pop box;
if(settings.tiptype!=2 || settings.ajaxurl){
creatMsgbox();
}
};
$.fn.Validform.sn={
defaults:{
tiptype:1,
ajaxPost:false,
is_submit:true
},
regcheck:function(type,gets){
if(type.indexOf(' ')!=-1){//
var types = type.split(' ');
for (var t in types){
if(arguments.callee.call(this,types[t],gets)){
continue;
}else{
return false;
}
}
return true;
}else{
var reg;
switch(type){
case "*":
return true;
case "k":
reg= /^[0-9]{1}(\.[0-9]{1,2}){0,1}$/;
return reg.test(gets);
case "personname":
var reg=/^[a-zA-Z0-9\x00-\xff]+/g;
return reg.test(gets);
case "chinese":
var reg=/[^\x00-\xff]/g;
return reg.test(gets);
case "notnull":
reg= /(^\s*)|(\s*$)/g;
if(!gets)
return false;
gets = gets.replace(reg,'');
return gets.length? true : false ;
case "positiveinteger": /* 0 */
reg= /^[0-9]{1,11}$/;
return reg.test(gets);
case "positivenumber":/* */
reg=/^[1-9]{0,1}[0-9](\.[0-9]{1,2}){0,1}$/;
return reg.test(gets);
case "channelname": /* */
reg1= /^[a-z0-9][a-z0-9]*:\/\/[a-z0-9][-a-z0-9_]*(\.[a-z0-9][-_a-z0-9]*){1,}$/;
reg2= /^[a-z0-9][a-z0-9]*:\/\/[*]\.[a-z0-9][-a-z0-9]*(\.[a-z0-9][-a-z0-9]*){1,}$/;
return reg1.test(gets)||reg2.test(gets);
case "email": /* */
var emails=gets.split(",");
reg = /^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*[0-9a-zA-Z]+))@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2}|net|NET|com|COM|gov|GOV|mil|MIL|org|ORG|edu|EDU|int|INT)$/;
for(var key in emails){
if(!reg.test(emails[key])){
return false;
}
}
return true;
case "sms": /* */
var sms=gets.split(",");
reg= /^[0-9]{11}$/;
for(var key in sms){
if(!reg.test(sms[key])){
return false;
}
}
return true;
case "isp_hold": /* isp */
var isp=gets.split(":");
var isps = 0.0;
reg = /^((\d+)(?:\.\d+)?:){4,4}((\d+)(?:\.\d+)?)$/;
if(!reg.test(gets)) {
return false;
}
for(var key in isp){
isps= isps+parseFloat(isp[key]);
}
if(isps<=0) {
return false;
}
return true;
default:
return false;
}
}
},
showmsg:function(msg,type,o,show){// o:{obj: , type:1=> |
// 2=> },
// show tiptype=1 ;
if(errorobj){errorobj.addClass("Validform_error");}
if(type==1 || show=="alwaysshow"){
msgobj.find(".Validform_info").text(msg);
}
if(type==1 && show!="hide" || show=="alwaysshow"){
msghidden=false;
msgobj.find(".iframe").css("height",msgobj.height());
var left=($(window).width()-msgobj.width())/2;
var top=($(window).height()-msgobj.height())/2;
top=(document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop)+(top>0?top:0);
msgobj.css({
"left":left
}).show().animate({
top:top
},100);
}
if(type==2){
if(o.type){
switch(o.type){
case 1:// ;
o.obj.parent().next().find(".Validform_checktip").removeClass().addClass("Validform_checktip Validform_loading").text(msg);
break;
case 2:// ;
o.obj.parent().next().find(".Validform_checktip").removeClass().addClass("Validform_checktip Validform_right").text(msg);
}
}else{
o.obj.parent().next().find(".Validform_checktip").removeClass().addClass("Validform_wrong Validform_checktip").text(msg);
}
}
},
checkform:function(obj,parentobj,tiptype,show){// show blur ;
var errormsg=obj.attr("errormsg") || tipmsg.w;
if(obj.is("[datatype='radio']")){ // radio ;
var inputname=obj.attr("name");
var radiovalue=parentobj.find(":radio[name="+inputname+"]:checked").val();
if(!radiovalue){
errorobj=obj;
this.showmsg(errormsg,tiptype,{obj:obj},show);
return false;
}
errorobj=null;
this.showmsg(tipmsg.r,tiptype,{obj:obj,type:2},"hide");
return "radio";
}
if(obj.is("[datatype='checkbox']")){ // checkbox ;
var inputname=obj.attr("name");
var checkboxvalue=parentobj.find(":checkbox[name="+inputname+"]:checked").val();
if(!checkboxvalue){
errorobj=obj;
this.showmsg(errormsg,tiptype,{obj:obj},show);
return false;
}
errorobj=null;
this.showmsg(tipmsg.r,tiptype,{obj:obj,type:2},"hide");
return "checkbox";
}
if(obj.is("[datatype='select']")){ // select ;
if(!obj.val()){
errorobj=obj;
this.showmsg(errormsg,tiptype,{obj:obj},show);
return false;
}
errorobj=null;
this.showmsg(tipmsg.r,tiptype,{obj:obj,type:2},"hide");
return "select";
}
var defaultvalue=obj.attr("tip");
if((obj.val()==="" || obj.val()===defaultvalue) && obj.attr("ignore")!="ignore"){
errorobj=obj;
this.showmsg(obj.attr("nullmsg") || tipmsg.s,tiptype,{obj:obj},show);
return false;
}
if(obj.attr("recheck")){
var theother=parentobj.find("input[name="+obj.attr("recheck")+"]:first");
if(obj.val()!=theother.val()){
errorobj=obj;
this.showmsg(errormsg,tiptype,{obj:obj},show);
return false;
}
}
if(obj.attr("alternative")){ //
var theother=parentobj.find("textarea[name="+obj.attr("alternative")+"]:first");
if(theother.val()==undefined){
theother=parentobj.find("input[name="+obj.attr("alternative")+"]:first");
}
if(theother.val()==""&&obj.val()==""){
errorobj=obj;
theother.addClass("Validform_error");
this.showmsg(" ",tiptype,{obj:obj},show);
this.showmsg(" ",tiptype,{obj:theother},show);
return false;
}
if(obj.val()!=""){
this.showmsg(tipmsg.r,tiptype,{obj:theother,type:2},"hide");
theother.removeClass("Validform_error");
}
if(theother.val()!=""){
this.showmsg(tipmsg.r,tiptype,{obj:obj,type:2},"hide");
}
}
if(obj.attr("greaterthan")){// ,
var theother=parentobj.find("input[name="+obj.attr("greaterthan")+"]:first");
var thisValue=parseInt(obj.val());
var otherValue=parseInt(theother.val());
if(!isNaN(thisValue) && !isNaN(otherValue) && thisValue>=otherValue){// ,
errorobj=obj;
this.showmsg(" ",tiptype,{obj:obj},show);
return false;
}else if(!isNaN(thisValue) && !isNaN(otherValue) && thisValue<otherValue){
this.showmsg(tipmsg.r,tiptype,{obj:theother,type:2},"hide");
this.showmsg(tipmsg.r,tiptype,{obj:obj,type:2},"hide");
obj.removeClass("Validform_error");
theother.removeClass("Validform_error");
}
}
if(obj.attr("lessthan")){ // ,
var theother=parentobj.find("input[name="+obj.attr("lessthan")+"]:first");
var thisValue=parseInt(obj.val());
var otherValue=parseInt(theother.val());
if(!isNaN(thisValue) && !isNaN(otherValue) && thisValue<=otherValue){// ,
errorobj=obj;
this.showmsg(" ",tiptype,{obj:obj},show);
return false;
}else if(!isNaN(thisValue) && !isNaN(otherValue) && thisValue>otherValue){
this.showmsg(tipmsg.r,tiptype,{obj:theother,type:2},"hide");
this.showmsg(tipmsg.r,tiptype,{obj:obj,type:2},"hide");
obj.removeClass("Validform_error");
theother.removeClass("Validform_error");
}
}
if(obj.attr("greatertime")){ // ,
var theother=parentobj.find("input[name="+obj.attr("greatertime")+"]:first");
var thisValue=StrToTime(obj.val());
var otherValue=StrToTime(theother.val());
if( thisValue<otherValue){
errorobj=obj;
this.showmsg(" ",tiptype,{obj:obj},show);
alert(" ");
return false;
}else if(thisValue>=otherValue){
this.showmsg(tipmsg.r,tiptype,{obj:theother,type:2},"hide");
this.showmsg(tipmsg.r,tiptype,{obj:obj,type:2},"hide");
obj.removeClass("Validform_error");
theother.removeClass("Validform_error");
}
}
obj.removeClass("Validform_error");
errorobj=null;
return true;
}
};
function StrToTime(thisValue){
var arys= thisValue.split('-');
var d = new Date(arys[0], parseInt(arys[1])-1, arys[2]);
return d.getTime();
}
// & ;
$.Showmsg=function(msg){
creatMsgbox();
$.fn.Validform.sn.showmsg(msg,1);
};
$.Hidemsg=function(){
msgobj.hide();
msghidden=true;
};
})(jQuery);
css:
* {
margin: 0;
padding: 0;
}
input,select,textarea {
font-size: 1em;
margin: 0;
color: #000;
font-family: tahoma, arial, simsun, sans-serif;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
:focus {
outline: none;
}
body {
font: 12px/1.5 tahoma, arial, \5b8b\4f53, sans-serif;
}
/* registerform */
.registerform .need {
width: 10px;
color: #b20202;
}
.registerform td {
padding: 5px 0;
vertical-align: top;
text-align: left;
}
.registerform .inputxt,.registerform textarea {
border: 1px solid #a5aeb6;
width: 196px;
padding: 2px;
}
.registerform textarea {
height: 75px;
}
.registerform label {
margin: 0 26px 0 10px;
}
.registerform .tip {
line-height: 20px;
color: #5f6a72;
}
.registerform select {
width: 202px;
}
.registerformalter select {
width: 124px;
}
/*========== ===========*/
.Validform_checktip {
margin-left: 8px;
line-height: 20px;
height: 20px;
overflow: hidden;
color: #999;
font-size: 12px;
}
.Validform_right {
color: #71b83d;
padding-left: 20px;
background: url(../images/right.png) no-repeat left center;
}
.Validform_wrong {
color: red;
padding-left: 20px;
white-space: nowrap;
background: url(../images/error.png) no-repeat left center;
}
.Validform_loading {
padding-left: 20px;
background: url(../images/onLoad.gif) no-repeat left center;
}
.Validform_error {
background-color: #ffe7e7;
}
#Validform_msg {
color: #7d8289;
font: 12px/1.5 tahoma, arial, \5b8b\4f53, sans-serif;
width: 280px;
background: #fff;
position: absolute;
top: 0px;
right: 50px;
z-index: 99999;
display: none;
filter: progid : DXImageTransform.Microsoft.Shadow ( Strength = 3,
Direction = 135, Color = '#999999' );
-webkit-box-shadow: 2px 2px 3px #aaa;
-moz-box-shadow: 2px 2px 3px #aaa;
}
#Validform_msg .iframe {
position: absolute;
left: 0px;
top: -1px;
z-index: -1;
}
#Validform_msg .Validform_title {
line-height: 25px;
height: 25px;
text-align: left;
font-weight: bold;
padding: 0 8px;
color: #fff;
position: relative;
background-color: #000;
}
#Validform_msg a.Validform_close:link,#Validform_msg a.Validform_close:visited
{
line-height: 22px;
position: absolute;
right: 8px;
top: 0px;
color: #fff;
text-decoration: none;
}
#Validform_msg a.Validform_close:hover {
color: #cc0;
}
#Validform_msg .Validform_info {
padding: 8px;
border: 1px solid #000;
border-top: none;
text-align: left;
}
jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="http://www.springframework.org/tags/form"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<script src="resources/jquery/1.10.2/jquery.json-2.4.js"></script>
<script class="jsbin"
src="resources/jquery/1.10.2/jquery.dataTables.nightly.js"></script>
<script class="jsbin"
src="resources/jquery/1.10.2/jquery.dataTables.nightly.js"></script>
<style type="text/css" title="currentStyle">
@import "${projectPath}/resources/datatables/css/demo_page.css";
@import "${projectPath}/resources/datatables/css/demo_table.css";
@import "${projectPath}/resources/datatables/css/demo_table_jui.css";
</style>
<script type="text/javascript"
src="resources/tableValidation/tableValid.js"></script>
<script type="text/javascript">
$(function() {
$(".aa:last").Validform({
tiptype : 2,
callback : function(data) {
if (data.status == "y") {
setTimeout(function() {
$.Hidemsg();
}, 2000);
}
}
});
})
</script>
<style type="text/css">
@import "${projectPath}/resources/tableValidation/valid.css";
</style>
<script type="text/javascript">
</script>
<div class="container">
<s:form action="addchannelbandwidthalarm" method="post"
modelAttribute="channelalarm" class="aa">
<div class="row">
<table id="add" class="table table-hover"
style="margin-left: auto; margin-right: auto; width: auto;">
<tr>
<td> :</td>
<td><s:input path="channelname" class="form-control"
placeholder=" rcms " datatype="channelname"
nullmsg=" " errormsg=" rcms " /> <c:out
value="${channelnameerror}"></c:out>
</td>
<td><div class="Validform_checktip"> </div>
</td>
</tr>
<tr>
<td> :</td>
<td><s:input path="uplimit" class="form-control"
placeholder=" (MB)" datatype="positiveinteger" nullmsg=" "
errormsg=" " /></td>
<td><div class="Validform_checktip"> </div>
</td>
</tr>
<tr>
<td> :</td>
<td><s:input path="downlimit" class="form-control"
placeholder=" (MB)" datatype="*" greaterthan="uplimit"
nullmsg=" " errormsg=" , " />
</td>
<td><div class="Validform_checktip"> </div>
</td>
</tr>
<tr>
<td> :</td>
<td><s:select path="delay_time" class="form-control">
<s:option value="5" label="5 " />
<s:option value="10" label="10 " />
<s:option value="15" label="15 " />
<s:option value="30" label="30 " selected="selected" />
<s:option value="45" label="45 " />
<s:option value="60" label="60 " />
<s:option value="120" label="2 " />
</s:select></td>
<td><div class="Validform_checktip"> </div>
</td>
</tr>
<tr>
<td> :</td>
<td><s:select path="send_num" class="form-control">
<s:option value="1" label="5 " />
<s:option value="2" label="10 " />
<s:option value="3" label="15 " />
<s:option value="6" label="30 " />
<s:option value="9" label="45 " />
<s:option value="12" label="60 " />
<s:option value="24" label="2 " />
<s:option value="120" label="12 " />
</s:select></td>
<td><div class="Validform_checktip"> </div>
</td>
</tr>
<tr>
<td> :</td>
<td><s:textarea class="form-control" rows="3" path="email"
datatype="email" nullmsg=" email" errormsg="email " /></td>
<td><div class="Validform_checktip"> </div>
</td>
</tr>
<tr>
<td> :</td>
<td><s:textarea class="form-control" rows="3" path="sms"
datatype="sms" nullmsg=" " errormsg=" " /></td>
<td><div class="Validform_checktip"> </div>
</td>
</tr>
<tr>
<td> :</td>
<td><s:select path="enable" class="form-control">
<s:option value="0" label=" " />
<s:option value="1" label=" " />
</s:select></td>
<td><div class="Validform_checktip"> </div>
</td>
</tr>
<tr>
<td><input type="submit" class="btn btn-default " value=" " />
</td>
<td><a class="btn btn-default btn-sm" role="button"
href="${pageContext.request.contextPath}/channelbandwidthalarm"
title=" "> </a>
</td>
<td></td>
</tr>
</table>
</div>
</s:form>
</div>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
node.js 파충류 프레임워크 node-crawler 첫 체험바이두 파충류라는 단어는 일반적으로 나타나는python 관련 자료이다. py에도 파충류 프레임이 많은데, 예를 들면 scrapy, Portia, Crawley 등이다. 이전에는 개인적으로 C#로 파충류를 만드는 것을...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.