❶ js表單提交
表單提交是剛開始學js的朋友很迷惑的一個問題,怎麼提交,怎麼阻止默認提交,怎麼提交表單不跳轉等等問題,下面是一些示例
原始的表單提交有 button 按鈕提交和 <input /> 類型的。它們又什麼區別呢?
(1) 默認表單提交
(2)默認不會提交表單
(3) 如果在 form ,我們使用了 type=''submit 屬性,但是不讓表單默認提交,有什麼辦法呢?看下面
(4) 如果在 form ,我們使用了 type=''button 屬性,但是還是需要提交表單,這是可以使用ajax來提交,好處是可以自己控制提交,並且頁面不會跳轉
(5)若是使用默認提交的方法,且提交之前驗證表單,方法看下面
(6) 若是使用了 type='button' 屬性,但是還是想實現默認提交的方式怎麼辦? 看下面
(7) 下面的提交會發生什麼?
分析 : 點擊提交按鈕:
(1)當表單驗證失敗時,不會觸發 form.submit() 函數,所以可以觸發 <form> 的 onsubmit 句柄,又因為該句柄 return false 所以表單不會從該句柄處默認提交,所以 會在控制台列印出 表單的onsubmit事件句柄在form.submit()調用時失效'
(2)當表單驗證成功時,會觸發 form.submit() 函數提交表單,又因為 form.submit()提交表單的方式與用戶單擊 Submit 按鈕一樣,但是表單的 onsubmit 事件句柄不會被調用,所以 控制台不會列印出 表單的onsubmit事件句柄在form.submit()調用時失效
現在表單默認提交的方式基本沒人用了,都是ajax非同步提交。但是了解一些還是好的。。。
❷ js如何實現submit的點擊事件判斷是否觸發表單提交
submit只是表單提交來時的驗證事源件,無法獲取提交是否成功
return false阻止表單提交,自己寫ajax提交表單內容
$("#xxx").submit(function () {
$.ajax({ type: 'POST', data: $(this).val(), url: 'xxxx',
success: function () { //...
},
error: function (xhr) {
//...
}
});
return false;
});
❸ 濡備綍鐢╦s鎻愪氦琛ㄥ崟濡備綍鐢╦s鎻愪氦琛ㄥ崟鏁版嵁搴
Js琛ㄥ崟鎻愪氦
琛ㄥ崟鎻愪氦瀵逛簬鍒氬紑濮嬪︿範js鐨勬湅鍙嬫潵璇存槸涓涓姣旇緝鍥版儜鐨勯棶棰樸傚備綍鎻愪氦錛屽備綍闃叉㈤粯璁ゆ彁浜わ紝濡備綍鎻愪氦琛ㄥ崟涓嶈煩杞絳夈傝繖閲屾湁涓浜涗緥瀛愩鐨勫師濮嬭〃鍗曟彁浜ゆ湁鎸夐挳鎸夐挳鎻愪氦鍜岀殑綾誨瀷銆備袱鑰呮湁浠涔堝尯鍒錛
(1)榛樿よ〃鍗曟彁浜
(2)榛樿や笉浼氭彁浜よ〃鍗曘
(3)濡傛灉鍦ㄨ〃鍗曚腑錛屾垜浠浣跨敤浜唗ype=''submit灞炴э紝浣嗘槸涓嶈╄〃鍗曢粯璁ゆ彁浜わ紝鎬庝箞鍔烇紵鐪嬩笅闈
(4)濡傛灉鍦ㄨ〃鍗曚腑錛屾垜浠浣跨敤type=''button灞炴э紝浣嗚繕鏄闇瑕佹彁浜よ〃鍗曪紝鍙浠ョ敤ajax鎻愪氦銆傚ソ澶勬槸鍙浠ヨ嚜宸辨帶鍒舵彁浜わ紝欏甸潰涓嶄細璺寵漿銆
(5)濡傛灉浣跨敤榛樿ゆ彁浜ゆ柟寮忥紝騫朵笖鍦ㄦ彁浜ゅ墠瀵硅〃鍗曡繘琛屼簡楠岃瘉錛岃峰弬鑰冧互涓嬫柟娉曘
(6)濡傛灉浣跨敤浜唗ype='button'灞炴э紝浣嗕粛鎯沖疄鐜伴粯璁ょ殑鎻愪氦鏂規硶鎬庝箞鍔烇紵鐪嬩笅闈
(7)涓嬮潰鐨勬彁浜や細鎬庝箞鏍鳳紵
鍒嗘瀽:鍗曞嚮鎻愪氦鎸夐挳:
(1)褰撹〃鍗曢獙璇佸け璐ユ椂錛宖orm.submit()鍑芥暟涓嶄細琚瑙﹀彂錛屾墍浠
2.2select>涓嬫媺鍒楄〃
select>鍏冪礌瀹氫箟涓嬫媺鍒楄〃錛宱ption>鍏冪礌瀹氫箟寰呴夋嫨鐨勯夐」銆傚垪琛ㄩ氬父浼氭妸棣栦釜閫夐」鏄劇ず涓鴻閫夐夐」錛岄氳繃娣誨姞selected灞炴ф潵瀹氫箟棰勫畾涔夐夐」銆俽鍗曢夋寜閽銆佸嶉夋嗛粯璁ら変腑鐢錛歝hecked灞炴с俽涓嬫媺鍒楄〃浣跨敤錛歴elected灞炴с俽浣跨敤size灞炴ц劇疆涓嬫媺鍒楄〃灞曞紑錛屼嬌鐢╩ultiple灞炴ц劇疆澶氶夈俽2.3textarea>鏂囨湰鍩
textarea>鍏冪礌瀹氫箟澶氳岃緭鍏ュ瓧孌碉紙鏂囨湰鍩燂級rcols錛氳勫畾鏂囨湰鍖哄唴鐨勫彲瑙佸藉害銆俽rows錛氳勫畾鏂囨湰鍖哄唴鐨勫彲瑙佽屾暟銆俽鏂囨湰鍩熷彲浠ユ坊鍔爌laceholder灞炴э紝鐢ㄤ簬璁劇疆杈撳叆瀛楁甸勬湡鍊肩殑鎻愮ず淇℃伅銆俽2.4label>鏍囩
label鏄痠nput鐨勬弿榪幫紝瀹冩湰韜涓嶄細鏈夌壒孌婃晥鏋滐紝浣嗗畠鍜屽叾瀹僫nput鏍囩句嬌鐢ㄥ彲浠ユ彁鍗囩敤鎴風殑浣跨敤浣撻獙錛岀敤鎴蜂笉鐢ㄩ潪寰楃偣鍑誨埌鎸夐挳錛岃屾槸鐐瑰嚮鏂囧瓧鍗沖彲閫変腑錛屽傗滆頒綇瀵嗙爜鈥濄俽閫氳繃label鐨刦or鎸囧悜鎸夐挳鐨剗d鏉ョ粦瀹氾紝for鍜宨d灞炴х殑鍊艱佺浉鍚屻俽3.琛ㄥ崟鎸夐挳type="reset"閲嶇疆鎸夐挳r閲嶇疆鎸夐挳浼氭竻闄よ〃鍗曚腑鐨勬墍鏈夋暟鎹銆俽璁劇疆閲嶇疆鎸夐挳涓婃樉紺虹殑鏂囧瓧銆俽type="submit"鎻愪氦鎸夐挳rtype="submit"瀹氫箟鎻愪氦鎸夐挳銆傛彁浜ゆ寜閽鐢ㄤ簬鍚戞湇鍔″櫒鍙戦佽〃鍗曟暟鎹錛屾暟鎹浼氬彂閫佸埌琛ㄥ崟鐨刟ction灞炴т腑鎸囧畾鐨勯〉闈銆俽璁劇疆鎻愪氦鎸夐挳涓婃樉紺虹殑鏂囧瓧銆俽type="button"鏅閫氭寜閽畆button綾誨瀷鐨勫彧鏄涓涓鏅閫氱殑鎸夐挳錛岃宻ubmit鏈変竴涓鎻愪氦鐨勪綔鐢錛屽湪娌℃湁鍔爅s浠g爜鐨勬儏鍐典笅錛宐utton鍙鏄涓瑁呴グ銆俽type="image"鎻愪氦鎸夐挳rimage綾誨瀷鐨剗nput涔熸槸鍏鋒湁涓涓鎻愪氦鐨勪綔鐢錛屼笉鍚岀殑鏄鍙浠ユ寚瀹氫竴騫呭浘鐗囨潵浣滀負鎸夐挳錛屼笉鎻愬′嬌鐢╥mage錛屽洜涓哄畠鏈夋椂鍊欎細鎻愪氦涓ゆ°俽AngularJS浣跨敤angular-formly榪涜岃〃鍗曢獙璇侊紵
Angular鐨勮〃鍗曞睘鎬$valid,$invalid,$pristine,$dirtyAngular鎻愪緵浜嗘湁鍏寵〃鍗曠殑灞炴ф潵甯鍔╂垜浠楠岃瘉琛ㄥ崟.浠栦滑緇欐垜浠鎻愪緵浜嗗悇縐嶆湁鍏充竴涓琛ㄥ崟鍙婂叾杈撳叆鐨勪俊鎮錛屽苟涓斿簲鐢ㄥ埌浜嗚〃鍗曞拰杈撳叆.灞炴х被鎻忚堪$validng-validBoolean鍛婅瘔鎴戜滑榪欎竴欏瑰綋鍓嶅熀浜庝綘璁懼畾鐨勮勫垯鏄鍚﹂獙璇侀氳繃$invalidng-invalidBoolean鍛婅瘔鎴戜滑榪欎竴欏瑰綋鍓嶅熀浜庝綘璁懼畾鐨勮勫垯鏄鍚﹂獙璇佹湭閫氳繃$pristineng-pristineBoolean濡傛灉琛ㄥ崟鎴栬呰緭鍏ユ嗘病鏈変嬌鐢ㄥ垯涓篢rue$dirtyng-dirtyBoolean濡傛灉琛ㄥ崟鎴栬呰緭鍏ユ嗘湁浣跨敤鍒板垯涓篢rueAngular涔熸彁渚涗簡鏈夊叧琛ㄥ崟鍙婂叾杈撳叆妗嗙殑綾伙紝浠ヤ究浣犺兘澶熶緷鎹姣忎竴涓鐘舵佽劇疆鍏舵牱寮.璁塊棶琛ㄥ崟灞炴ф柟浣嶈〃鍗:formname>.angularproperty>璁塊棶涓涓杈撳叆妗:formname>.inputname>.angularproperty>
form琛ㄥ崟閫氳繃js鎻愪氦錛屽彟澶栬煩杞瑂ervlet鏃訛紝鑷宸卞畾涔変簡涓涓鏁幫紝浼犲弬榪囧幓錛屽彲浠ュ悧錛屼笉鏄痜o錛
鑷瀹氫箟鍙傛暟錛屽彲浠ラ氳繃鍦╢orm琛ㄥ崟涓璁劇疆闅愯棌鍩熶紶鍊糹nputtype="hidden"name="arg_name"value="arg_value"/>鍚庡彴閫氳繃arg_name鎺ユ敹arg_value鐨勫
瀹㈡埛絝鎻愪氦璇鋒眰鐨勫洓縐嶆柟寮忥紵
瀹㈡埛絝璇鋒眰鏂伴〉闈㈠拰鎻愪氦鏁版嵁鐨勫洓縐嶆柟寮
瓚呴摼鎺 瓚呴摼鎺+js submit鎸夐挳鎻愪氦琛ㄥ崟 浣跨敤js鎻愪氦琛ㄥ崟
鎵撳紑鏂伴〉闈㈢殑鏂瑰紡
浣跨敤鐩稿硅礬寰勫拰緇濆硅礬寰
浣跨敤url鎼哄甫鍙傛暟
鎻愪氦鏁版嵁鐨勬柟寮忎負get鏂瑰紡
window.location
window.open;
鍏堥獙璇佸啀鎻愪氦琛ㄥ崟銆
浣跨敤hidden鎻愪氦鏁版嵁錛堥潪鐢ㄦ埛濉鍐欐暟鎹錛
浣跨敤button+js
浣跨敤a>+js
涓鑸涓簆ost鎻愪氦鏂瑰紡
1銆佽秴閾炬帴錛
鎵撳紑鏂伴〉闈錛歛target="_blank">;
浣跨敤url鎼哄甫鍙傛暟錛歛href="page2.jsp?uid=adminpass=123">
娉ㄦ剰錛氬氫釜鍙傛暟涔嬮棿浣跨敤榪炴帴錛屼嬌鐢?琛ㄧず鎼哄甫鍙傛暟錛
2銆佽秴閾炬帴+js錛
浣跨敤window.locationscripttype="text/javascript">
functionfun(){window.location="page2.jsp";}/script>
a閾炬帴鐨勫啓娉曪細ahref="javascript:fun();">閾炬帴鍒皃age2/a>href榪炴帴涓璋冪敤fun鍑芥暟銆
浣跨敤window.open()scripttype="text/javascript">
functionfun(){window.open("page2.jsp");--琛ㄧず鍦ㄦ柊紿楀彛鎵撳紑閾炬帴銆倉/script>
a閾炬帴涓錛歛href="javascript:fun();">閾炬帴鍒皃age2/a>
3銆佷嬌鐢╯ubmit鎸夐挳鎻愪氦鏁版嵁琛ㄥ崟錛氭敞鎰廰ction鍜宮ethod涓や釜灞炴ц〃紺虹殑鍚涔
瀵逛簬鐢ㄦ埛杈撳叆鏁版嵁錛歛銆侀渶瑕佹湁鐢ㄦ埛杈撳叆妗嗗嵆inputtype="text"name="username"/>鍦ㄦよ緭鍏ユ嗕腑杈撳叆鏁版嵁銆
b銆佹湁鏃墮渶瑕佸厛楠岃瘉錛屽啀鎻愪氦鏁版嵁錛
渚嬶細inputtype="text"name="uid"id="uid"/>functionfun4()
varuid=document.getElementById("uid").value;--鑾峰彇input杈撳叆妗嗙殑vaule鍊
if(uid==""){
alert("璇瘋緭鍏ョ敤鎴峰悕");
returnfalse;---琛ㄧず涓嶆彁浜ゆ暟鎹畗else{
returntrue;--鎻愪氦鏁版嵁}
submit鎻愪氦鎸夐挳inputtype="submit"value="鎻愪氦琛ㄥ崟"慰nclick="returnfun4();">
瀵逛簬闈炵敤鎴瘋緭鍏ユ暟鎹錛氫笉闇瑕乮nput杈撳叆妗
浣跨敤hidden鎻愪氦鏁版嵁錛
!--浣跨敤hidden鎻愪氦鏁版嵁->
formaction="page2.jsp"method="post">
inputtype="hidden"name="uid"id="uid2"value="admin">
inputtype="submit"value="鎻愪氦琛ㄥ崟">br/>
scripttype="text/javascript">
document.getElementById("uid2").value="admin2";--涓ょ嶅弬鏁板
/script>
/form>
4銆佷嬌鐢╦s鎻愪氦琛ㄥ崟錛
浣跨敤button+js鎻愪氦錛
button涓嶅叿澶囨彁浜ゅ姛鑳斤細
!--浣跨敤button鍜宩s鎻愪氦琛ㄥ崟-->
formaction="page2.jsp"method="post"id="form1">
inputtype="text"name="uid">
inputtype="button"value="鎻愪氦琛ㄥ崟"慰nclick='document.getElementById("form1").submit();'>---鑾峰彇鐨勬槸form鏍囩懼硅薄/form>
浣跨敤a>+js鎻愪氦琛ㄥ崟
!--浣跨敤a>鍜宩s鎻愪氦琛ㄥ崟>
formaction="page2.jsp"method="post"id="form2">
inputtype="text"name="uid">
ahref='javascript:document.getElementById("form2").submit();'>鎻愪氦琛ㄥ崟/a>br/>
/form>
js琛ㄥ崟鎬庝箞鍏佽稿嚱鏁幫紵
榪愮敤寮傛ユ濇兂promise瀹炵幇鎻愪氦涔嬪悗鍥炶皟,姣斿俛jax鐨剆uccess鍑芥暟灝辨槸鎻愪氦鎴愬姛鍚庣殑鍥炶皟
❹ 兩個問題:表單驗證不通過還是提交,java中action怎麼設置頁面不跳轉,表單提交後還是原來頁面;
1. 驗證時,除了來 adUpdateCheck 函數里返源回false之外,button 里還需要寫成這樣:
<buttonid="useSet"onclick="returnadUpdateCheck()"></button>
這樣才能在返回false的時候不提交表單,因為這種內聯方式的onclick事件,引號內部其實是JS語句,而不是只表示JS函數。
2. 提交後返回原頁面,只需要設置result為提交之前一樣的就可以了,比如 return "success" 或者 return "input"。如果 return null 的話,是沒有任何結果,將得到一個空白頁面。
❺ 如何判斷jsp表單是否成功提交
你可以在判斷的時候檢查數據是否提交完成。如果提交完成,就給一個提示。
那麼如何知道數據提交完成呢?你在提交時應該要有一個預期,如果達到了預期,就認為提交完成。^_^