jquery radio取值,checkbox取值,select取值,radio選中,checkbox選中,select選中,及其相關
獲取一組radio被選中項的值
var item = $('input[@name=items][@checked]').val();
獲取select被選中項的文本
var item = $("select[@name=items] option[@selected]").text();
select下拉框的第二個元素為當前選中值
$('#select_id')[0].selectedIndex = 1;
radio單選組的第二個元素為當前選中值
$('input[@name=items]').get(1).checked = true;
獲取值:
文本框,文本區(qū)域:
$("#txt").attr("value");
多選框checkbox:
$("#checkbox_id").attr("value");
單選組radio:
$("input[@type=radio][@checked]").val();
下拉框select: $('#sel').val();
控制表單元素:
文本框,文本區(qū)域:
$("#txt").attr("value",'');//清空內容
$("#txt").attr("value",'11');//填充內容
多選框checkbox:
$("#chk1").attr("checked",'');//不打勾
$("#chk2").attr("checked",true);//打勾
if($("#chk1").attr('checked')==undefined) //判斷是否已經打勾
單選組radio:
$("input[@type=radio]").attr("checked",'2');//設置value=2的項目為當前選中項
下拉框select:
$("#sel").attr("value",'-sel3');//設置value=-sel3的項目為當前選中項
$("<option value='1'>1111</option><option value='2'>2222</option>").appendTo("#sel")//添加下拉框的option
$("#sel").empty();//清空下拉框
BodyTagSupport類的方法: 編寫標簽對應的實現類時,需要重載BodyTagSupport類幾個方法:doStartTag(), setBodyContent(), doInitBody(), doAfterBody(), doEndTag(); 他們執(zhí)行順序如下: doStartTag()→doInitBody()→setBodyContent()→doAfterBody()→doEndTag() doStartTag()方法可返回EVAL_BODY_INCLUDE或SKIP_BODY, 如果返回EVAL_BODY_INCLUDE則繼續(xù)執(zhí)行; 如果返回SKIP_BODY則接下來的doInitBody(),setBodyContent(), doAfterBody()三個方法不會被執(zhí)行, 而直接執(zhí)行doEndTag()方法。 setBodyContent()方法用于設置標簽體內容,如果在此之前要作一些初始化工作,則在doInitBody()方法中完成。 標簽體內容執(zhí)行完后,會調用doAfterBody()方法,此方法可返回EVAL_BODY_TAG, SKIP_BODY, EVAL_PAGE或SKIP_PAGE。 如果返回EVAL_BODY_TAG則會再次設置標簽體內容,直到返回SKIP_BODY; 如果返回EVAL_PAGE則標簽體執(zhí)行完后會繼續(xù)執(zhí)行JSP頁面中接下來的部分; 如果返回SKIP_PAGE,則JSP頁面的后續(xù)內容將不再執(zhí)行。 標簽中靜態(tài)常量: EVAL_BODY_INCLUDE:告訴服務器正文的內容,并把這些內容送入輸出流 SKIP_BODY:告訴服務器不要處理正文內容 EVAL_PAGE:讓服務器繼續(xù)執(zhí)行頁面 SKIP_PAGE:讓服務器不要處理剩余的頁面 EVAL_BODY_AGAIN:讓服務器繼續(xù)處理正文內容,只有doAfterBody方法可以返回 EVAL_BODY_BUFFERED:BodyTag接口的字段,在doStartTag()返回 EVAL_BODY_INCLUDE、SKIP_BODY一般由doStartTag()返回,而EVAL_PAPGE、SKIP_PAGE由doEndTag()返回。 |
TagSupport與BodyTagSupport的區(qū)別主要是標簽處理類是否需要與標簽體交互,如果不需要交互的就用TagSupport,否則如果需要交互就用BodyTagSupport。
交互就是標簽處理類是否要讀取標簽體的內容和改變標簽體返回的內容。
用TagSupport實現的標簽,都可以用BodyTagSupport來實現,因為BodyTagSupport繼承了TagSupport。
2 、doStartTag(),doEndTag(),doAfterBody(),
doStartTag()方法是遇到標簽開始時會呼叫的方法,其合法的返回值是EVAL_BODY_INCLUDE與SKIP_BODY,前者表示將顯示標簽間的文字,后者表示不顯示標簽間的文字;
doEndTag()方法是在遇到標簽結束時呼叫的方法,其合法的返回值是EVAL_PAGE與 SKIP_PAGE,前者表示處理完標簽后繼續(xù)執(zhí)行以下的JSP網頁,后者是表示不處理接下來的JSP網頁
doAfterBody()這個方法是在顯示完標簽間文字之后呼叫的,其返回值有EVAL_BODY_AGAIN與SKIP_BODY,前者會再顯示一次標簽間的文字,后者則繼續(xù)執(zhí)行標簽處理的下一步。
EVAL_BODY_INCLUDE:把Body讀入存在的輸出流中,doStartTag()函數可用
EVAL_PAGE:繼續(xù)處理頁面,doEndTag()函數可用
SKIP_BODY:忽略對Body的處理,doStartTag()和doAfterBody()函數可用
SKIP_PAGE:忽略對余下頁面的處理,doEndTag()函數可用
EVAL_BODY_TAG:已經廢止,由EVAL_BODY_BUFFERED取代
EVAL_BODY_BUFFERED:申請緩沖區(qū),由setBodyContent()函數得到的BodyContent對象來處理tag的body,如果類實現了BodyTag,那么doStartTag()可用,否則非法
EVAL_BODY_BUFFERED 要將BodyContent的內容輸出 如:
JspWriter w = pageContext.getOut();
if (bodyContent != null) {
if (w instanceof BodyContent) {
w = ((BodyContent) w).getEnclosingWriter();
}
}
String cnt = this.bodyContent.getString();
try {
w.write(cnt);
} catch (IOException e) {
e.printStackTrace();
}
預定的處理順序是:doStartTag()返回SKIP_BODY,doAfterBodyTag()返回SKIP_BODY,doEndTag()返回EVAL_PAGE.
如果繼承了TagSupport之后,如果沒有改寫任何的方法,標簽處理的執(zhí)行順序是:
doStartTag() ->不顯示文字 ->doEndTag()->執(zhí)行接下來的網頁
如果您改寫了doStartTag(),則必須指定返回值,如果指定了EVAL_BODY_INCLUDE,則執(zhí)行順序是
doStartTag()->顯示文字->doAfterBodyTag()->doEndTag()->執(zhí)行下面的網頁
display.tld 源碼
xml 代碼:
DisplayTag.java 源碼
java 代碼: