如何在 jquery 发布请求中从外部点击事件传递额外的参数
How to pass extra parameter in jquery post request from outside click event?
嗨,我有如下所示的jquery请求,
$('#filterForm').submit(function(e){
e.preventDefault();
var dataString = $('#filterForm').serialize();
var class2011 = document.getElementById("2011").className;
//var validate = validateFilter();
alert(dataString);
if(class2011=='yearOn')
{
dataString+='&year=2011';
document.getElementById("2011").className='yearOff';
}
else
{
document.getElementById("2011").className='yearOn';
}
alert (dataString);
$.ajax({
type: "POST",
url: "myServlet",
data: dataString,
success: function(data) {
/*var a = data;
alert(data);*/
}
});
而我的形式就像,
<form method="post" name="filterForm" id="filterForm">
<!-- some input elements -->
</form>
好吧,我正在触发表单提交事件的jquery提交,(它工作正常(我想在表单内部传递一个额外的参数,该参数不在上面的表单内容中,但它在页面外部就像下面一样
[查看此图像链接以获取代码预览][1]
那么我如何触发上述事件,单击,带有类 yearOn 的元素(检查上面的 html 片段(和类 yearOff ,并将 year 的附加参数设置为 2011 或 2010
$(document).ready(function () {
$('#filterForm').submit(function (e) {
e.preventDefault();
var dataString = $('#filterForm').serialize();
if ($("#2011").hasClass('yearOn')) {
dataString += '&year=2011';
$("#2011").removeClass('yearOn').addClass('yearOff');
}
else {
$("#2011").removeClass('yearOff').addClass('yearOn');
}
$.ajax({
url: "/myServlet",
type: "POST",
data: dataString,
success: function (data) {
/*var a = data;
alert(data);*/
}
});
});
});
1.( 如果你已经在使用 jQuery,你可以使用 jquery 提供的 $.post(( 函数。在大多数情况下,它会让你的生活更轻松。
2.(我一直有一个成功的帖子,以这种方式使用额外的参数:
在此处构建额外的参数
commands={
year:'2011'
};
将其与表单序列化相结合
var dataString=$.param(commands)+'&'+$("#filterForm").serialize();
在此处执行您的帖子
$.post("myServlet",data,
function(data) {
/*var a = data;
alert(data);*/
}
);
或者如果你真的喜欢它,请使用 $.ajax
$.ajax({
type: "POST",
url: "myServlet",
data: dataString,
success: function(data) {
/*var a = data;
alert(data);*/
}
最后,这是您现在正在做的完整代码
$('#filterForm').submit(function(e){
e.preventDefault();
var class2011 = document.getElementById("2011").className;
//var validate = validateFilter();
alert(dataString);
if(class2011=='yearOn') {
dataString+='&year=2011';
document.getElementById("2011").className='yearOff';
} else {
document.getElementById("2011").className='yearOn';
}
commands={
year:'2011'
};
var dataString=$.param(commands)+'&'+$("#filterForm").serialize();
alert (dataString);
$.ajax({
type: "POST",
url: "myServlet",
data: dataString,
success: function(data) {
/*var a = data;
alert(data);*/
}
});
相关文章:
- Firefox中的JavaScript事件参数
- 将参数传递给 jQuery .click WHILE 保留事件参数
- onWindowResize事件参数使用Three.js
- 如何在 redis 中将 JS 对象传递给它自己的事件参数 - 连接事件上的哨兵
- 在剑道的自定义绑定器中添加事件参数
- 加载处理程序上的事件参数
- 将jQuery触发器中的事件参数发送到iframe
- 在ExtJS中访问事件参数
- node-webkit如何解析'事件参数
- 如何用间隔刷新鼠标向下的事件参数
- Javascript/JQuery 事件参数.我不明白这个“e”论点是什么或做什么
- Firefox onkeypress事件没有传递事件参数
- 我如何从JS函数中获得触发事件而不传递事件参数
- 如何获取getUIKit事件参数的className
- 事件参数及其用途
- 在全局变量中存储mousemove事件参数可能会导致性能问题
- 为什么stopPropagation在回调中使用事件参数,而不是使用'this'
- 文档.ie8和IE7未定义onmouseover和onmouseout事件参数
- 在使用 ClientScript.GetPostBackEventReference 时将事件参数从 javascrip
- 如何为复选框单击事件使用自定义事件参数