我对表单操作有一个基本的问题。
请在此处考虑以下代码,如果有的话,请忽略语法。
<form action="demo_form.asp" method="get">
<a href="test.asp">Code testing</a>
First name: <input type="text" name="fname" /><br />
Last name: <input type="text" name="lname" /><br />
<button type="submit">Submit</button><br />
</form>
在提交表单时调用demo_form.asp,我可以在下面的demo_form.asp中处理表单中的变量,
request.GET('fname')
当通过HREF调用test.asp时,如何处理表单中的变量。可以使用相同的GET或POST方法吗?
答案 0 :(得分:1)
通过超链接提交数据的唯一方法是通过GET请求。这当然会涉及表单中的所有字段,而不是作为查询参数添加到超链接中。
您当然可以修改a
元素,以便它使用onclick处理程序和JavaScript来使用DOM方法从表单中获取数据,动态修改href属性,然后触发该事件的click事件特别的锚标签。这也是一个GET请求。
<强> HTML:强>
<form action="test.asp" id="theForm">
<a href="test.asp?" id="link">Code testing</a>
First name: <input type="text" name="fname" /><br />
Last name: <input type="text" name="lname" /><br />
</form>
<强> jQuery的:强>
$('#link').click(function() {
var href = "";
$('#theForm > input').each(function(event) {
event.preventDefault();
href = $('#link').attr("href") + "&" +
$(this).attr("name") + "=" + $(this).attr("value");
$('#link').attr("href", href);
});
$(this).click(); // or window.location = $(this).attr("href");
});
我不确定这会给你带来什么价值,除了作为练习更多地了解DOM以及浏览器处理事件的方式。
在不知道你想要完成什么的情况下,很难知道你为什么不只是使用表单本身。
答案 1 :(得分:0)
如果您通过链接(或您所说的href)调用test.asp
,则只能使用GET方法处理变量。因此,如果你有test.asp?fname=bob&lname=smith
,那么这些GET变量将在test.asp中可用
您无法使用POST数据执行此操作。