❶ 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表单是否成功提交
你可以在判断的时候检查数据是否提交完成。如果提交完成,就给一个提示。
那么如何知道数据提交完成呢?你在提交时应该要有一个预期,如果达到了预期,就认为提交完成。^_^