find() 方法獲得當(dāng)前元素集合中每個元素的后代,通過選擇器、jQuery 對象或元素來篩選。語法:.find(selector) 參數(shù)selector 字符串值,包含供匹配當(dāng)前元素集合的選擇器表達(dá)式。 詳細(xì)說明:如果給定一個表示 DOM 元素集合的 jQuery 對象,.find() 方法允許我們在 DOM 樹中搜索這些元素的后代,并用匹配元素來構(gòu)造一個新的 jQuery 對象。.find() 與 .children() 方法類似,不同的是后者僅沿著 DOM 樹向下遍歷單一層級。.find() 方法第一個明顯特征是,其接受的選擇器表達(dá)式與我們向 $() 函數(shù)傳遞的表達(dá)式的類型相同。將通過測試這些元素是否匹配該表達(dá)式來對元素進(jìn)行過濾。
目前累計服務(wù)客戶成百上千,積累了豐富的產(chǎn)品開發(fā)及服務(wù)經(jīng)驗。以網(wǎng)站設(shè)計水平和技術(shù)實力,樹立企業(yè)形象,為客戶提供網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、網(wǎng)站策劃、網(wǎng)頁設(shè)計、網(wǎng)絡(luò)營銷、VI設(shè)計、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。成都創(chuàng)新互聯(lián)公司始終以務(wù)實、誠信為根本,不斷創(chuàng)新和提高建站品質(zhì),通過對領(lǐng)先技術(shù)的掌握、對創(chuàng)意設(shè)計的研究、對客戶形象的視覺傳遞、對應(yīng)用系統(tǒng)的結(jié)合,為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。
form 自帶reset按鈕并不能真正重置表單,當(dāng)表單有默認(rèn)值時。所以寫js方法調(diào)用,來清空form表單。
第一步:引用js
!--這里的min是自己用js壓縮工具對完整版進(jìn)行的壓縮
并不是真正的min,所以好使--
script?type="text/javascript"?src="js/jquery-1.7.min.js"/script
script?type="text/javascript"?src="js/jquery.form.js"/script
第二步:頁面寫form
form?id="showDataForm"?
action="/024pm/f_shopUser.do?method=login"?method="post"
input?type="text"?value=""?name="name"?maxlength="2"/
input?type="password"?value=""?name="password"?maxlength="2"/
input?type="submit"?value="提交"/
/form
div?id="output1"?
style="width:1000px;height:200px;"
/div
第三步:寫js調(diào)用jquery.form.js,對form表單進(jìn)行ajax提交
$(document).ready(function()?{
var?options?=?{
target:?'#output1',
//?從服務(wù)傳過來的數(shù)據(jù)顯示在這個div內(nèi)部
也就是ajax局部刷新
beforeSubmit:?showRequest,
//?ajax提交之前的處理
success:??showResponse
//?處理之后的處理
};
$('#showDataForm').submit(function()?{
$(this).ajaxSubmit(options);
return?false;?
//非常重要,如果是false,則表明是不跳轉(zhuǎn)
//在本頁上處理,也就是ajax,如果是非false,則傳統(tǒng)的form跳轉(zhuǎn)。
});
});
function?showResponse(responseText,?statusText,?xhr,?$form)?{
alert(xhr.responseText+"=="+$form.attr("method")+'status:?'?+?
statusText?+?'\n\nresponseText:?\n'?+?responseText);
//xhr:說明你可以用ajax來自己再次發(fā)出請求
//$form:是那個form對象,是一個jquery對象
//statusText:狀態(tài),成功則為success
//responseText,服務(wù)器返回的是字符串(當(dāng)然包括html,不包括json)
}
function?showRequest(formData,?jqForm,?options)?{
//formData是數(shù)組,就是各個input的鍵值map數(shù)組
//通過這個方法來進(jìn)行處理出來拼湊出來字符串。
//formData:拼湊出來的form字符串,比如name=herapassword,
//其實就是各個表單中的input的鍵值對,
//如果加上method=XXXX,那也就是相當(dāng)于ajax內(nèi)的data。
var?queryString?=?$.param(formData);
alert(queryString+"======"+formData.length);
for?(var?i=0;?i??formData.length;?i++)?{
alert(formData[i].value+"==============="+formData[i].name);
}
//jqForm,jquery?form對象
var?formElement?=?jqForm[0];
alert($(formElement).attr("method"));
alert($(jqForm[0].name).attr("maxlength"));
//非常重要,返回true則說明在提交ajax之前你驗證
//成功,則提交ajax?form
//如果驗證不成功,則返回非true,不提交
return?true;
}
options對象內(nèi)的值有哪些?
var?options?=?{
target:?'#output1',?
data:{param1:"我自己的第一個額外的參數(shù)"},
//這個參數(shù)是指通過ajax來給服務(wù)器提交除了form內(nèi)部input的參數(shù)
//在后臺中使用String?param1=req.getParameter("param1");獲取。
//?dataType:?null,
dataType:'json',
//這個參數(shù)值的是服務(wù)器返回的數(shù)據(jù)類型,默認(rèn)的是null
//也就是服務(wù)器可以默認(rèn)返回字符串,然后將這些字符串放在target內(nèi)部
//當(dāng)然還有json、xml,其中最常用的便是null和json
//對于span?style="color:?#333333;"a?href=""?target="_blank"span?style="color:?#333333;"json/span/a/span的使用,我們會稍后講解到
beforeSubmit:?showRequest,
success:??successRes,
type:'POST'
//提交方式,默認(rèn)是自己在form標(biāo)簽上指定的method
//如果沒有指定,則使用get。
url:''
//重新提交的url,即url可以在form中配置
//也可以在這里配置。
};
1,動態(tài)添加驗證規(guī)則
//?添加
$("#addConnectUser").rules("add",{rules:{required:true,isString:true},messages:{required:"用戶名為必填項",isString:"請輸入規(guī)范字符"}});
//?移除$("#addConnectUser").rules('remove','required');
在此我要講一下為什么有一個isString驗證規(guī)則;這個是為了限制表單中input的輸入規(guī)則;比如:不允許特殊字符,或者一些特殊的要求;這個isString是自己配置的
jQuery.validator.addMethod("isString",?function(value,?element)?{
return?this.optional(element)?||?(inputTest.test(value));
},"請輸入規(guī)范內(nèi)容");
//?此處的inputTest為你自定義的驗證規(guī)則
2,如何給已經(jīng)添加了表單驗證的選項移除驗證規(guī)則;
$("#addConnectUser").rules("remove",'required');
//再次添加可以直接用$("#addConnectUser").rules("add",'required');
form有id或者是class嗎?或者它的子孫元素有也可以。。如果沒有的話,尋找這個form會比較麻煩。。但如果頁面只有這一個form的話倒是可以,如下:
$("form").eq(0).attr("name","lo_form");
就這一行代碼OK。
但還是有id或class好一些,因為上面代碼如果在你有多個form的時候就不可以這樣用了。比如如果form的id=fr,那么這樣寫:
$("#fr").attr("name","lo_form");
form的class=fr的話,你得知道它是第幾個,這個是和第一行的代碼效果一樣的,其中eq(0)指的是第一個的意思,eq(1)就是第二個。這樣來寫:
$(".fr").eq(0).attr("name","lo_form");
如果你的form里有一個元素,它有id屬性,那也好說,比如form里有一個id=child的元素,那么這樣寫:
$("#child").parent("form").attr("name","lo_form");
而如果你的form外面被套著一個元素,它有id屬性,那一樣好說,比如form外面還有個div,它的id=parent,那么這樣寫:
$("#parent").children("form").attr("name","lo_form");
ok,把你能遇到的基本都說了,應(yīng)該有一個能用上吧。