我需要创建30个按钮,从1到30,每个按钮调用完全相同的动作脚本(例如,所有在同一表单下),其中传递给动作脚本的参数只是按下按钮的数量(1至30)。
例如,假设动作脚本是process.php,如果按下按钮3,那么我需要从process.php?btn = 3中提取数据,如果按下按钮27,那么我需要提取数据form process.php?btn = 27。
使用JQuery执行此操作的最简单,最直接的方法是什么?
谢谢!
答案 0 :(得分:1)
假设您为所有链接提供了课程.number
:
$("a.number").click(function(e) {
e.preventDefault();
window.location.href = 'process.php?btn=' + $(this).text();
});
<a class="number" href="#">1</a>
<a class="number" href="#">2</a>
...
这似乎是最好在服务器端完成的事情类型,就像让服务器使用正确的param值呈现每个href
一样。我假设在你的情况下不是一个选项。
编辑:根据要求异步:
$("a.number").click(function(e) {
e.preventDefault();
// fill up div with ID="results" with content from server
$("#results").load("process.php", { btn: $(this).text() }, function() {
// callback to do something once the content has loaded
// (perhaps not needed)
});
});
<div id="results"></div>
...
<a class="number" href="#">1</a>
<a class="number" href="#">2</a>
...
答案 1 :(得分:1)
这样的事情应该这样做。 beforeSend函数只是为了向您显示发送到服务器的内容。
$('button').click(function (e) {
e.preventDefault();
var number = $('form button').index(this);
$.ajax('process.php', {
data: 'number='+ number,
beforeSend: function (jqHxR, settings) {
alert(settings.data);
return false;
}
});
});