AJAX POST 提交到asp.net页面,无法获取html页面的radio和checkbox的值,怎么才能获取呢!

wcl2222 2010-06-08 03:41:49
最近做了一个用AJAX POST提交表单的页面,发现,所有的文本框都可以接收到值,就是 radio,和checkbox标签的值无法获取,我提交的页面是html静态的,而处理数据的页面是asp.net的,这是怎么回事呢,是我的asp.net页面接收的方式不对,还是ajax本身不支持html静态的radio和checkbox选取的值!有没有办法解决!

现在我只能在前台加上对应的隐藏hidden标签,然后用户选中了radio标签的选项后,用JS赋值给hidden标签,然后再用AJAX提交,感觉这样不太安全,也不标准,大家有什么简洁的好办法呢,请高人指点,谢谢!

...全文
1751 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
mngzilin 2012-11-04
  • 打赏
  • 举报
回复
request.from[""] request.param[""] request[""] request.querystring[""] ===============================
dingxianzhong 2012-11-03
  • 打赏
  • 举报
回复
[img=][/img]
luckface 2012-08-17
  • 打赏
  • 举报
回复
$("#form").Serialize()
lddmz518 2010-11-27
  • 打赏
  • 举报
回复
name="sb" id="radio" 2個是1個組嗎 怎麼name一樣 id不一樣
TaoFor 2010-11-27
  • 打赏
  • 举报
回复
JS 不会.只会JQ
孟子E章 2010-11-23
  • 打赏
  • 举报
回复
这会有问题吗》
你先alert(postedData)看是什么?是名称/值这样的格式的吗
namegz 2010-11-23
  • 打赏
  • 举报
回复
没有人回答的是正确的
  • 打赏
  • 举报
回复
获取表单数据的函数有问题,你的是用id作为建,而不是name
     //获取表单中的名值对
function getRequestBody(oForm)
{
var aParams=new Array();
for(var i=0;i<oForm.elements.length;i++)
{
var sParam=encodeURIComponent(oForm.elements[i].id)//===ID我作为建了,而不是name,但是你获取值的时候使用name的值了
sParam+="=";
sParam+=encodeURIComponent(oForm.elements[i].value);
aParams.push(sParam);
}
return aParams.join("&");
}


给个收集表单数据的代码给你参考下
function getRequestBody(f){
var params='';
for(var i=0;i<f.elements.length;i++){
if(f.elements[i].name){
switch(f.elements[i].type){
case 'hidden':
case 'password':
case 'text':
case 'textarea':
case 'select-one':params+=(params==''?'':'&')+f.elements[i].name+'='+encodeURIComponent(f.elements[i].value);break;
case 'select-multiple':tmp='';for(var p=0;p<f.elements[i].options.length;p++)if(f.elements[i].options[p].selected)tmp+=(tmp==''?'':',')+f.elements

[i].options[p].value;if(tmp!='')params+=(params==''?'':'&')+f.elements[i].name+'='+encodeURIComponent(tmp);break;
case 'radio':
case 'checkbox':if(f.elements[i].checked)params+=(params==''?'':'&')+f.elements[i].name+'='+encodeURIComponent(f.elements[i].value);break;}
}
}
return params;
}
ad0128 2010-06-08
  • 打赏
  • 举报
回复

if($("#save").attr('checked')==true){st=1;}else{st=0}
$.ajax({
type: 'POST',
data: {Type:$('#sltType').val(),St:st},
dataType: 'json',
......
})
<div class="save"><input type="checkbox" id="saveLogin" class="checkbox" checked="true"/><label for="saveLogin">记住状态</label></div>


check.ashx
string st = context.Request.Form["St"];
wcl2222 2010-06-08
  • 打赏
  • 举报
回复
我附上我的这两个测试页面的源码,大家帮我分析是什么原因吧
页面一:


<!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>Ajax POST方法提交表单</title>
<script type="text/javascript">
window.onerror=function(errorMessage,errorUrl,errorNum)
{
alert(errorMessage+errorUrl+errorNum);
}




var xmlHttp;
function createXmlHttp()
{
if(window.ActiveXObject) {
try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");} catch (e) { }
if (xmlHttp == null) try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");} catch (e) { }
}
else {
xmlHttp = new XMLHttpRequest();
}



}
function startRequest()
{
try
{
createXmlHttp();
var url="request_asp.aspx";
//var url="1111.asp";
var postedData=getRequestBody(document.forms["form1"]);

postedData=encodeURI(postedData);
postedData=decodeURI(postedData);


xmlHttp.open("post",url,true);
xmlHttp.setRequestHeader("content-length",postedData.length);//post提交设置项
xmlHttp.setRequestHeader("content-type","application/x-www-form-urlencoded");//post提交设置项
//xmlHttp.setRequestHeader('Content-type','application/x-www-form-urlencoded;charset=gb2312')

xmlHttp.onreadystatechange =onComplete;
//将名值对发送到服务器
xmlHttp.send(postedData);
}
catch(e)
{
alert(e.message);
}
}
function onComplete()
{
if(xmlHttp.readyState==4&&xmlHttp.status==200)
{
//显示结果
// document.getElementById("divResult").innerText=decodeURI(xmlHttp.responseText);//解码后的
document.getElementById("divResult").innerHTML=xmlHttp.responseText;
}
}
//获取表单中的名值对
function getRequestBody(oForm)
{
var aParams=new Array();
for(var i=0;i<oForm.elements.length;i++)
{
var sParam=encodeURIComponent(oForm.elements[i].id)
sParam+="=";
sParam+=encodeURIComponent(oForm.elements[i].value);
aParams.push(sParam);
}
return aParams.join("&");
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /></head>
<body>

<form id="form1">
<p>
<label>
<textarea name="textarea" id="Text1" cols="45" rows="5"></textarea>
</label>
</p>
<p>
<input type="radio" name="sb" id="radio" value="1" />
<input type="radio" name="sb" id="radio2" value="2" />
<br />
<input id="Button1" type="button" value="POST提交" onclick="startRequest();" />
</p>
<div id="divResult"></div></form>
</body>
</html>

request_asp.aspx页面源码基本是一句:
[code=C#]

response.write ("radio值为:"+ request["sb"].ToString()");

[/code]
wcl2222 2010-06-08
  • 打赏
  • 举报
回复
谢谢楼上的,我就是这样接收的,但是取不到值啊,但是如果不用AJAX提交,可以正常接收到这些值!
孟子E章 2010-06-08
  • 打赏
  • 举报
回复
Request.Form["radioname"]
Request.QueryString["radioname"]
内容概要:本文研究了基于Q-Learning自适应强化学习的PID控制器在自主水下航行器(AUV)运动控制中的应用,旨在提升其在复杂海洋环境下的控制性能。通过建立AUV的动力学模型,将Q-Learning算法与传统PID控制相结合,实现控制器参数的在线自适应优化,有效增强了系统的响应速度、稳定性和抗干扰能力。研究采用Matlab进行仿真验证,结果表明该方法在轨迹跟踪与姿态控制方面具有优越表现,为水下机器人智能控制提供了可行的技术路径与理论支持。; 适合人群:具备自动控制理论、强化学习或水下机器人建模背景,从事相关科研工作的研究人员、高校研究生及工程技术开发者。; 使用场景及目标:①应用于高精度、强鲁棒性的水下机器人运动控制系统设计;②开展智能PID控制器在非线性、时变系统中的参数自整定研究;③作为强化学习在复杂工业控制场景中落地的典型案例参考,推动算法与工程实践融合。; 阅读建议:建议结合提供的Matlab代码进行仿真实验,重点剖析Q-Learning与PID融合的架构设计、奖励函数设定及参数收敛过程,可进一步拓展至与其他智能优化算法(如DQN、Actor-Critic)的对比研究,深化对自适应控制机制的理解。
已经博主授权,源码转载自 https://pan.quark.cn/s/a4b39357ea24 Matlab 被视为一种功能卓越的编程平台,特别是在数运算和数据分析方面展现出广泛的应用价。在应对多元非线性回归的挑战时,Matlab 拥备多种工具和函数,支持用户对复杂的数据进行构建模型和适配。本指南将重点阐释在 Matlab 环境下如何执行多元非线性回归分析。 我们需要掌握三种关键的回归指令: 1. `polyfit(x,y,n)`:此函数适用于拟合一元幂函数,能够导出一个多项式模型。例如,若知晓数据呈现二次函数形态,可选择`n=2`来适配一个二次曲线。 2. `regress(y,x)`:这是一个多元线性回归指令,能够处理多个自变量对因变量的影响。即便数据并非完全呈现线性特征,该函数也能提供一个线性近似。 3. `nlinfit(x,y,’fun’,beta0)`:这是最为通用的非线性回归指令,适用于适配任何类型的函数,无论是一元或多元,前提是用户能够定义函数形式(`fun`参数)。 回归分析的核心在于寻找一组最优的系数,使得模型能够最恰当地描述数据。这通常涉及选择一个合适的函数形态,随后通过最小化误差平方和来估算系数。在Matlab中,`regress`指令主要用于处理线性模型,而`nlinfit`则处理更为复杂的非线性模型。 对于多元线性回归模型,我们可以用如下形式进行表述: \[ y = \beta_0 + \beta_1x_1 + \beta_2x_2 + \cdots + \beta_px_p + \epsilon \] 其中,\( y \)是因变量,\( x_1, x_2, \ldots, x_p \)是自变量,\( \beta_0, \beta_1, ...

52,780

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧