Ô´ÂëÍø,Ô´ÂëÂÛ̳,Ô´ÂëÖ®¼Ò,ÉÌÒµÔ´Âë,ÓÎÏ·Ô´ÂëÏÂÔØ,discuz²å¼þ,ÆåÅÆÔ´ÂëÏÂÔØ,¾«Æ·Ô´ÂëÂÛ̳

 ÕÒ»ØÃÜÂë
 Á¢¼´×¢²á
Â¥Ö÷: ttx9n

[JavaScript] Extjsѧϰ±Ê¼ÇÖ®¶þ ³õʶExtjsÖ®Form

[¸´ÖÆÁ´½Ó]

7Íò

Ö÷Ìâ

861

»ØÌû

32Íò

»ý·Ö

ÂÛ̳ԪÀÏ

Rank: 8Rank: 8

»ý·Ö
329525
·¢±íÓÚ 2010-1-7 18:07:21 | ÏÔʾȫ²¿Â¥²ã |ÔĶÁģʽ
form¿ÖÅÂÊÇWeb¿ª·¢ÖÐ×î³£ÓõĿؼþÁË£¬Extjs¶ÔÆÕͨµÄhtml form½øÐÐÁËһЩ·â×°£¬Ê¹Æä¾ßÓлù±¾µÄÍâ¹ÛºÍһЩ¼ò±ãµÄºÍ·þÎñÆ÷½øÐÐͨÐŵķ½·¨¡£ ExtjsÖÐµÄ±íµ¥×é¼þÊÇExt.form.BasicForm£¬²»¹ý×î¼òµ¥×î³£ÓõÄÊÇExt.form.FormPanel¿Ø¼þ£¬Ëü¼Ì³Ð×ÔPanel£¬¾ßÓÐÒ»¶¨µÄ½çÃæÏÔʾ¿ØÖÆÄÜÁ¦£¬ËüÆäÖаüº¬×ÅÒ»¸öBasicForm¶ÔÏó£¬ÓÃÀ´Ö´ÐÐÏò·þÎñÆ÷Ìá½»£¬¼ÓÔصȶ¯×÷¡£ExtjsÒ²¶Ô³£ÓõÄhtml±íµ¥Ïî½øÐÐÁË·â×°£¬ÌṩÁËһЩ¶îÍâµÄ¹¦ÄÜ£¬±ÈÈçÊý¾ÝÑéÖ¤¡£Êµ¼ÊʹÓõÄʱºòÖ»ÒªÏòFormPanelÖÐÌí¼ÓÕâЩ±íµ¥Ïî¼´¿É¡£³£¼ûµÄ±íµ¥ÏîÓУ¬TextField£¬NumberField,Radio,CheckBoxµÈ¡£

ÏÂÃæͨ¹ýÒ»¸öÀý×ÓÀ´½éÉÜ»ù±¾FormµÄʹÓá£ÓÉÓÚʹÓÃFormÒªºÍ·þÎñÆ÷¶Ë³ÌÐò½»»¥£¬·½±ãÆð¼û£¬Ð½¨Ò»¸öasp.netÕ¾µã£¬°ÑextjsµÄËùÓÐÎļþ¶¼Ìí¼Óµ½Õ¾µãÏÂÃ棬ÔÙн¨Ò»¸öforms.htmÎļþ£¬×÷Ϊ´Ë´ÎµÄÑùÀýÎļþ£¬ÈçÏÂͼ£º
 
ÏÂÃæΪforms.htmÌí¼Ó´úÂ룬Ö÷ÒªÊÇΪFormPanelÌí¼Ó±íµ¥Ï
¸´ÖÆ´úÂë ´úÂëÈçÏÂ:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Extjs FormPanel</title>
<link rel="Stylesheet" type="text/css" href="ext-3.1.0/resources/css/ext-all.css" />
<style type="text/css">
.allow-float{clear:none !important;}
.stop-float{ clear:both !important;}
.float-left{float:left;}
</style>
<script type="text/javascript" src="ext-3.1.0/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext-3.1.0/ext-all.js"></script>
<script type="text/javascript">
Ext.onReady(function() {
Ext.BLANK_IMAGE_URL = 'ext-3.1.0/resources/images/default/s.gif';
Ext.QuickTips.init(); //³õʼ»¯ÐÅÏ¢Ìáʾ¹¦ÄÜ
var loginForm = new Ext.form.FormPanel({
title: 'A Simple FormPanel',
height: 300,
width: 300,
frame: true,
labelSeparator: ':',
labelWidth: 60,
labelAlign: 'right',
applyTo: 'form',
items: [
new Ext.form.TextField({
id: 'Name',
fieldLabel: 'Name',
allowBlank: false,
blankText: '±ØÌî×Ö¶Î',
msgTarget: 'qtip'
}),
new Ext.form.TextField({
id:'Password',
fieldLabel: 'Password',
allowBlank: false,
inputType: 'password',
blankText: '±ØÌî×Ö¶Î',
//msgTarget: 'qtip'
msgTarget: 'side'
}),
new Ext.form.TextField({
id: 'email',
fieldLabel: 'E-Mail',
allowBlank: false,
selectOnFocus: true,
inputType: 'Text',
msgTarget: 'side', emptyText: '±ØÌî×Ö¶Î',
regex: /^([\w]+)(.[\w]+)*@([\w-]+\.){1,5}([A-Za-z]){2,4}$/,
regexText: 'Email ¸ñʽ²»ÕýÈ·'
}),
new Ext.form.NumberField({
id: 'age',
fieldLabel: 'Age',
allowNegative: false,
decimalPrecision: 0,
maxValue: 100,
maxText: 'ÊäÈëµÄÊý×Ö×î´óÊÇ100'
}),
new Ext.form.TextArea({
id: 'remark',
fieldLabel: 'Remark',
width: 200
}),
new Ext.form.Radio({
name: 'sex',
itemCls: 'float-left',
clearCls: 'allow-float',
fieldLabel: 'Sex',
boxLabel: 'Male'
}),
new Ext.form.Radio({
name: 'sex',
clearCls: 'stop-float',
boxLabel: 'Female',
hideLabel: true
}),
new Ext.form.Checkbox({
name: 'hobby',
clearCls: 'allow-float',
itemCls: 'float-left',
boxLabel: 'Football',
fieldLabel: 'Hobby'
}),
new Ext.form.Checkbox({
name: 'hobby',
clearCls: 'allow-float',
itemCls: 'float-left',
hideLabel: true,
boxLabel: 'Ping-Pang'
}),
new Ext.form.Checkbox({
name: 'hobby',
clearCls: 'stop-float',
hideLabel: true,
boxLabel: 'Basketball'
})
],
buttons: [new Ext.Button({
text: 'OK',
handler: login
})
]
});
function login() {
loginForm.getForm().submit({
clientValidation: true,
waitMsg: 'Please wait...',
waitTitle: 'Hint',
url: 'simpleForm.ashx',
method: 'GET',
success: function(form, action) {
Ext.Msg.alert('Hint', 'Get Success:Your Name is '+action.result.msg.Name+" Pwd: "+action.result.msg.Password);
},
failure: function(form, action) {
Ext.Msg.alert('Hint', 'Get Failed' + action.failureType);
}
});
};
});
</script>
</head>
<body>
<div id="form">
</div>
</body>
</html>

¹¹ÔìFormPanelµÄʱºòÐèҪͨ¹ýapplyToÊôÐÔÖ¸¶¨½«Õâ¸öPanel¼ÓÔص½Ê²Ã´ÇøÓò£¬applyToµÄÖµÒ»°ãÊÇdivµÄid¡£FormPanelµÄitemsÊôÐÔ¾ÍÊÇÒ»¸ö±íµ¥ÏîµÄÊý×é¡£TextField¿ÉÒÔÖ¸¶¨ÊÇ·ñÔÊÐíΪ¿Õ£¬NumberFieldÒ²¿ÉÒÔ£¬»¹¿ÉÒÔÖ¸¶¨×î´óÖµ¡¢×îСֵµÄÏÞÖÆ¡£ÖµµÃ×¢ÒâµÄÊÇÕâЩ±íµ¥ÏîÖеÄitemClsºÍclearClsÊôÐÔ£¬¿ÉÒÔͨ¹ýÕâЩÊôÐÔ¸ø±íµ¥Ï¼ÓcssÒÔʵÏÖ×Ô¼ºÏëÒªµÄЧ¹û¡£ÆäÖÐitemClsÊǸ½¼ÓÔÚ±íµ¥Ïî±¾ÉíÉÏÃæµÄ£¬clearClsÊǸ½¼ÓÔÚÒ»¸ö½ôÌù×Å¸Ã±íµ¥ÏîµÄ¿Õ°×divÉÏÃæµÄ¡£buttonsÊôÐÔÖпÉÒÔÌí¼Ó°´Å¥¶ÔÏó¡£ÔÝʱºöÂÔÌá½»º¯Êý£¬µ½ÏÖÔÚΪֹ£¬Ò»¸ö±íµ¥ÒѾ­Íê³É£º
image 
Õâ¸ö±íµ¥¾ßÓнÏÒ»ÖµÄÍâ¹Û£¬Ò²¾ßÓÐÁ˳£¼ûµÄÑéÖ¤¹¦ÄÜ£¬¹ØÓÚ¸ü¶àextjsµÄ±íµ¥ÑéÖ¤¹¦ÄÜ£¬ÒÔºóÔÙ½éÉÜ¡£ÏÂÃæ½éÉÜ±íµ¥µÄÌá½»¡£±íµ¥µÄÌá½»ÒÀ¿¿µÄÊÇBasicformµÄsubmit·½·¨¡£¿ÉÒÔͨ¹ýµ÷ÓÃFormPanelµÄgetForm·½·¨»ñµÃBasicForm£¬ÔÙµ÷ÓÃËüµÄsubmit·½·¨£¬submit·½·¨ÖÐÖ÷ÒªµÄ²ÎÊýÊÇÒªÌá½»µÄurlµØÖ·£¬Ìá½»µÄ·½Ê½GET/POST£¬ÒÔ¼°Ìύʧ°ÜºÍ³É¹¦ºóµÄÁ½¸ö´¦Àíº¯ÊýsucessºÍfailure¡£ÕâÁ½¸ö´¦Àíº¯Êý¶¼ÓÐÁ½¸ö²ÎÊý£¬Ò»¸öÊǵ±Ç°µÄform»¹ÓÐÒ»¸öÊÇAction¶ÔÏó£¬Action¶ÔÏóÖÐÖ÷Òª¼Ç¼ÁËÕâ´ÎÌá½»£¨Ò²¿ÉÒÔÊǼÓÔØ£©µÄÖ÷ÒªÐÅÏ¢£¬Ö÷ÒªÓÐʧ°ÜÀàÐÍfailureType,ºÍ·þÎñÆ÷¶ËµÄ·µ»ØÐÅÏ¢result¡£failureType¿ÉÒÔÊÇAction.CLIENT_INVALID,CONNTECT_FALIURE,LOAD_FALURE,SERVER_INVALID, ÕâЩ¶¼ÊÇÔÚActionÖж¨ÒåµÄ¹«¹²ÊôÐÔ£¬Êµ¼ÊÉÏÊÇÒ»¸östring¡£ÏÂÃæÖ÷Òª½éÉÜ´Ó·þÎñÆ÷·µ»ØµÄresult£¬extjs¶ÔÓÚ´Ó·þÎñÆ÷¶Ë·µ»ØµÄÐÅÏ¢ÓÐ×űȽÏÑϸñµÄÒªÇó£¬Ä¬ÈÏÇé¿öÏ£¬·þÎñÆ÷¶Ë·µ»ØµÄÓ¦¸ÃÊÇÒ»¸öjson×Ö·û´®£¬ÇÒÆäÖÐÓÐÒ»¸öÊôÐÔÊÇsuccess£¬ÀàÐÍÊÇboolean£¬ÓÃÀ´Ö¸Ê¾´Ë´ÎÌá½»³É¹¦£¬ÆäÓàµÄÊôÐÔ¿ÉÒÔÊÇÆäËû×Ô¶¨ÒåµÄ·µ»ØÊý¾Ý¡£

ÀýÈçÏÂÃæ¾ÍÊÇÒ»¸ö·þÎñÆ÷¶Ë·µ»ØµÄÑùÀý£º
¸´ÖÆ´úÂë ´úÂëÈçÏÂ:
{
"success":true, // note this is Boolean, not string
"msg":"Updated Successfully!"
}

ÏÂÃæΪÕâ¸öhtmÒ³Ãæ±àдһ¸ö·þÎñÆ÷ÏìÓ¦Ò³Ã棬н¨Ò»¸öGeneric HandlerÒ³Ãæ SimpleForm.ashx£¬Õâ¸öÏìÓ¦ºÜ¼òµ¥£¬¾ÍÊÇ°ÑÌá½»ÉÏÀ´µÄÐÕÃûºÍÃÜÂëÔÙ·µ»Ø¸ø¿Í»§¶Ë¡£Òª·µ»ØµÄÊý¾ÝÓ¦¸ÃÊÇÀàËÆÓÚ£º

{success:true,msg:{Name:xxx,Password:xxxx}}

Ó¦´Ë±àд´ËÏìÓ¦ÈçÏ£º
¸´ÖÆ´úÂë ´úÂëÈçÏÂ:
public void ProcessRequest (HttpContext context) {
string s = context.Request.Params["Name"];
string pwd = context.Request.Params["Password"];
if (s == null) s = "null";
string result = "{success:true,msg:{Name:\""+s+"\",Password:\""+pwd+"\"}}";
context.Response.ContentType = "text/plain";
context.Response.Write(result);
}

ÔËÐгÌÐò£¬Ìîд±ØÒªµÄÐÅÏ¢£¬µã»÷OK°´Å¥£¬¿ÉÒÔ¿´µ½´Ó·þÎñÆ÷¶Ë·µ»ØµÄÊý¾Ý£ºimage ×îºó½éÉÜÏÂÈçºÎ´Ó·þÎñÆ÷¶Ë»ñµÃ±íµ¥µÄÐÅÏ¢²¢ÇÒÌî³ä¿Í»§¶Ë±íµ¥¡£ÒªÌî³ä¿Í»§¶Ë£¬Ê¹ÓõÄÊÇBasicFormµÄload·½·¨£¬¸Ã·½·¨Ä¬ÈÏÒªÇó´Ó·þÎñÆ÷¶Ë»ñµÃÒ»¸öjson×Ö·û´®£¬ºÍsubmitÀàËÆ£¬Ò²ÐèÒªÒ»¸ösuccessÊôÐÔ£¬ÆäÓàµÄÊÇ±íµ¥×Ö¶ÎÐÅÏ¢£¬Ö»ÒªÊôÐÔµÄÃû×ÖºÍ±íµ¥ÏîµÄÃû×ÖÏàͬ£¬Õâ¸öÌî³ä¹ý³ÌÊÇ×Ô¶¯Íê³ÉµÄ£¬ÕâµãºÜ·½±ã¡£ÎªÕâ¸ö±íµ¥Ìí¼ÓÒ»¸öload°´Å¥£¬ÓÃÀ´´Ó·þÎñÆ÷»ñÈ¡±íµ¥ÐÅÏ¢£º
¸´ÖÆ´úÂë ´úÂëÈçÏÂ:
buttons: [new Ext.Button({
text: 'OK',
handler: login
}),
new Ext.Button({
text: 'Load',
handler: loadData
})
]loadDataµÄ·½·¨Îª£ºfunction loadData() {
loginForm.getForm().load({
clientValidation: false,
waitMsg:'Loading...',
url: 'simpleFormLoad.ashx',
method: 'GET'
});
}×¢Ò⣬ÓÉÓÚloadÊý¾Ý²»ÐèÒª½øÐпͻ§¶ËÑéÖ¤£¬ËùÒÔ½«clientValidationÉèΪfalse¡£ÏàÓ¦µÄsimpleFormLoad.ashx·þÎñÆ÷¶Ë´úÂëΪ£º

public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
context.Response.Write("{success:true,data:{Name:\"ServerReply\",age:10,email:\"yinzixin1985@hotmail.com\"}}");
}

µã»÷Load°´Å¥£¬Ä㽫¿´µ½£º
image 

Êý¾Ý˳ÀûµÄ´Ó·þÎñÆ÷¶Ë·µ»Ø²¢ÇÒ×Ô¶¯Ìî³äµ½±íµ¥ÖС£

±¾ÎÄÖ÷Òª½éÉÜextjs±íµ¥µÄ»ù±¾¸ÅÄÒÔ¼°ÈçºÎÓë·þÎñÆ÷½øÐмòµ¥µÄ½»»¥¡£ÕâЩÄÚÈݲ¢²»×ãÒÔÓ¦¸¶Êµ¼ÊÐèÇó£¬ÏÂÃ漸ƪÎÄÕ»á½éÉÜһЩ¸ü¼ÓʵÓõÄÄÚÈÝ¡£

»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

0

Ö÷Ìâ

2Íò

»ØÌû

0

»ý·Ö

Ö춻áÔ±

Rank: 3Rank: 3

»ý·Ö
0
·¢±íÓÚ 2022-8-17 20:13:53 | ÏÔʾȫ²¿Â¥²ã
¿ÉÒÔ£¬¿´¿¨°Í

0

Ö÷Ìâ

1Íò

»ØÌû

68

»ý·Ö

×¢²á»áÔ±

Rank: 2

»ý·Ö
68
·¢±íÓÚ 2022-12-1 18:48:47 | ÏÔʾȫ²¿Â¥²ã
À²À²À²À²À²À²À²À²£¡

0

Ö÷Ìâ

2Íò

»ØÌû

0

»ý·Ö

Ö춻áÔ±

Rank: 3Rank: 3

»ý·Ö
0
·¢±íÓÚ 2023-9-1 04:01:22 | ÏÔʾȫ²¿Â¥²ã
ÅÂÅÂÅÂÅÂÅÂÅÂÅÂÅÂÅÂÅÂÅÂÅÂÅÂÅÂ

4

Ö÷Ìâ

2Íò

»ØÌû

303

»ý·Ö

Ö춻áÔ±

Rank: 3Rank: 3

»ý·Ö
303
·¢±íÓÚ 2023-9-11 23:35:26 | ÏÔʾȫ²¿Â¥²ã
ÂÛ̳ÓÐÄã¸ü¾«²Ê£¡

14

Ö÷Ìâ

1Íò

»ØÌû

75

»ý·Ö

×¢²á»áÔ±

Rank: 2

»ý·Ö
75
·¢±íÓÚ 2023-12-10 13:21:47 | ÏÔʾȫ²¿Â¥²ã
ºÜ²»´íµÄÍæÒâ

7

Ö÷Ìâ

2Íò

»ØÌû

398

»ý·Ö

Ö춻áÔ±

Rank: 3Rank: 3

»ý·Ö
398
·¢±íÓÚ 2024-5-26 03:40:43 | ÏÔʾȫ²¿Â¥²ã
¶ø¿ìÀÖÄãÃÇ¿ìÀÖÂíÄê¿ìÀÖ

1

Ö÷Ìâ

2Íò

»ØÌû

176

»ý·Ö

×¢²á»áÔ±

Rank: 2

»ý·Ö
176
·¢±íÓÚ 2024-6-10 19:06:07 | ÏÔʾȫ²¿Â¥²ã
hiŶºÍ·³ÄÕÅ©¼ÒÅ®

12

Ö÷Ìâ

2Íò

»ØÌû

431

»ý·Ö

Ö춻áÔ±

Rank: 3Rank: 3

»ý·Ö
431
·¢±íÓÚ 2024-7-11 23:41:43 | ÏÔʾȫ²¿Â¥²ã
¸ã¸öÃâ·ÑµÄÓÃÓÃ

4

Ö÷Ìâ

2Íò

»ØÌû

58

»ý·Ö

×¢²á»áÔ±

Rank: 2

»ý·Ö
58
·¢±íÓÚ 2024-8-7 11:00:23 | ÏÔʾȫ²¿Â¥²ã
¹à¹à¹à¹àË®
¸ß¼¶Ä£Ê½
B Color Image Link Quote Code Smilies

±¾°æ»ý·Ö¹æÔò

ÊÖ»ú°æ|СºÚÎÝ|ÍøÕ¾µØͼ|Ô´ÂëÂÛ̳ ( º£Íâ°æ )

GMT+8, 2025-2-7 06:32 , Processed in 0.076128 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

¿ìËٻظ´ ·µ»Ø¶¥²¿ ·µ»ØÁбí